OSDN Git Service

PR rtl-optimization/47036
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-12-24  Alexander Monakov  <amonakov@ispras.ru>
2
3         PR rtl-optimization/47036
4         * sel-sched-ir.c (fallthru_bb_of_jump): Remove special support for
5         unconditional jumps.
6         * sel-sched.c (moveup_expr): Ditto.
7
8 2010-12-23  Sebastian Pop  <sebastian.pop@amd.com>
9             Richard Guenther  <rguenther@suse.de>
10
11         PR tree-optimization/46758
12         * graphite-sese-to-poly.c (scan_tree_for_params_right_scev): Use
13         tree_int_to_gmp instead of int_cst_value.
14         (scan_tree_for_params_int): Same.
15         (scan_tree_for_params): Same.
16         (pdr_add_data_dimensions): Use ppl_set_inhomogeneous_tree.
17
18 2010-12-23  Sebastian Pop  <sebastian.pop@amd.com>
19
20         PR tree-optimization/47002
21         * tree-data-ref.c (compute_data_dependences_for_loop): Pass in a
22         pointer to the loop_nest.
23         (analyze_all_data_dependences): Initialize and free the loop_nest.
24         (free_dependence_relations): Do not free loop_nest.
25         (build_rdg): Pass in the loop_nest, datarefs, and dependence_relations.
26         (free_rdg): Also free the data on edges.
27         * tree-data-ref.h (build_rdg): Update declaration.
28         (compute_data_dependences_for_loop): Same.
29         * tree-if-conv.c (if_convertible_loop_p_1): Pass in the loop_nest.
30         (if_convertible_loop_p): Allocate and free loop_nest.
31         * tree-loop-distribution.c (rdg_flag_loop_exits): Free conds.
32         (free_rdg_components): VEC_free components.
33         (distribute_loop): Update call to build_rdg.  Allocate and free
34         loop_nest, datarefs, and dependence_relations.
35         * tree-loop-linear.c (linear_transform_loops): Allocate and free
36         loop_nest.
37         * tree-parloops.c (loop_parallel_p): Same.
38         * tree-predcom.c (tree_predictive_commoning_loop): Same.
39         * tree-vect-data-refs.c (vect_analyze_data_refs): Pass to
40         compute_data_dependences_for_loop a pointer to LOOP_VINFO_LOOP_NEST.
41         * tree-vect-loop.c (new_loop_vec_info): Initialize LOOP_VINFO_LOOP_NEST.
42         (destroy_loop_vec_info): Free LOOP_VINFO_MAY_ALIAS_DDRS and
43         LOOP_VINFO_LOOP_NEST.
44         * tree-vect-slp.c (destroy_bb_vec_info): Call free_data_refs and
45         free_dependence_relations.
46         * tree-vectorizer.h (struct _loop_vec_info): Add a field loop_nest.
47         (LOOP_VINFO_LOOP_NEST): New.
48
49 2010-12-23  Martin Jambor  <mjambor@suse.cz>
50
51         * ipa.c (cgraph_remove_unreachable_nodes): Update former_clone_of even
52         when not checking.
53
54 2010-12-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
55
56         * configure.ac (gcc_cv_ld_eh_frame_hdr): Only check GNU ld for
57         --eh-frame-hdr.
58         Check for working Sun ld version.
59         (HAVE_LD_EH_FRAME_HDR): Adapt comment.
60         (glibc_header_dir): Set only once.
61         Rename to ...
62         (target_header_dir): ... this.
63         Adapt users.
64         (gcc_cv_target_dl_iterate_frame_hdr): Check on *-*-solaris2*.
65         (TARGET_DL_ITERATE_PHDR): Define if present.
66         * configure: Regenerate.
67         * config.in: Likewise.
68         * config/t-sol2 (LIB2ADDEH, LIB2ADDEHDEP): Define.
69         * crtstuff.c (USE_PT_GNU_EH_FRAME): Define for recent Solaris 11
70         with linker support and dl_iterate_phdr.
71         * unwind-dw2-fde-glibc.c (USE_PT_GNU_EH_FRAME): Likewise.
72         (_Unwind_IteratePhdrCallback) [PT_SUNW_UNWIND]: Also accept
73         PT_SUNW_UNWIND .eh_frame_hdr sections.
74         [CRT_GET_RFIB_DATA && __i386__ && __sun__ && __svr4__]: Add
75         load_base to data->dbase.
76         [CRT_GET_RFIB_DATA && __x86_64__ && __sun__ && __svr4__]: Handle
77         64-bit Solaris 10+/x86.
78         * config/sol2-gld.h [TARGET_DL_ITERATE_PHDR && HAVE_LD_EH_FRAME_HDR]
79         (LINK_EH_SPEC): Define.
80
81 2010-12-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
82
83         * doc/extend.texi (Function Attributes, Volatiles): Fix typos.
84         * doc/install.texi (Prerequisites, Specific): Likewise.
85         * doc/invoke.texi (C Dialect Options, Debugging Options)
86         (Optimize Options, MicroBlaze Options)
87         (RS/6000 and PowerPC Options, RX Options, Code Gen Options):
88         Likewise.
89         * doc/objc.texi (Method signatures)
90         (Fast enumeration protocol): Likewise.
91         * doc/tm.texi.in (Run-time Target, Register Arguments)
92         (Scheduling, Macros for Initialization, Misc): Likewise.
93         * doc/tm.texi: Renerate.
94
95 2010-12-23  Nicola Pero  <nicola.pero@meta-innovation.com>
96
97         * doc/objc.texi (Modern GNU Objective-C runtime API): Mention that
98         reference documentation for functions in the API is in the header
99         files.
100         (Messaging with the GNU Objective-C runtime, Dynamically
101         registering methods, Forwarding hook): New sections.
102
103 2010-12-22  Sebastian Pop  <sebastian.pop@amd.com>
104
105         PR tree-optimization/47019
106         * sese.h (scev_analyzable_p): Parameters of a SCoP are SCEV analyzable.
107
108 2010-12-22  Nathan Froyd  <froydnj@codesourcery.com>
109
110         * c-aux-info.c (gen_formal_list_for_type): Use prototype_p.
111         * c-decl.c (diagnose_arglist_conflict): Likewise.
112         (diagnose_mismatched_decls, merge_decls): Likewise.
113         (c_builtin_function, c_builtin_function_ext_scope): Likewise.
114         (start_decl, start_function): Likewise.
115         * c-tree.h (C_DECL_ISNT_PROTOTYPED): Likewise.
116         * config/ia64/ia64.h (INIT_CUMULATIVE_ARGS): Likewise.
117         * config/mep/mep.c (mep_validate_interrupt): Likewise.
118         * config/pa/pa.h (INIT_CUMULATIVE_ARGS): Likewise.
119         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
120         * config/sh/sh.c (sh_init_cumulative_args): Likewise.
121         * config/sparc/sparc.c (init_cumulative_args): Likewise.
122         * dwarf2out.c (add_prototyped_attribute): Likewise.
123         (gen_subprogram_die): Likewise.
124         * ipa-type-escape.c (check_function_parameter_and_return_types):
125         Likewise.
126         (check_call): Likewise.
127         * tree-ssa.c (useless_type_conversion_p): Likewise.
128
129 2010-12-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
130
131         * config/spu/spu.md ("mov<mode>"): Use nonimmediate_operand
132         predicate for destination operand.
133         * config/spu/spu.c (spu_expand_mov): If move destination is an
134         invalid subreg, perform move in the subreg's inner mode instead.
135
136 2010-12-22  Martin Jambor  <mjambor@suse.cz>
137
138         PR tree-optimization/45934
139         PR tree-optimization/46302
140         PR tree-optimization/46987
141         * gimple-fold.c (get_base_binfo_for_type): Removed.
142         (gimple_get_relevant_ref_binfo): Likewise.
143         (gimple_fold_obj_type_ref_call): Dumb down to 4.5 functionality,
144         removed parameter inplace, updated the caller.
145         * gimple.h (gimple_get_relevant_ref_binfo): Remove declaration.
146         * ipa-cp.c (ipcp_propagate_types): Do not derive types from constants.
147         (ipcp_discover_new_direct_edges): Do not do devirtualization based on
148         constants.
149         * ipa-prop.c (compute_known_type_jump_func): Use
150         get_ref_base_and_extent and get_binfo_at_offset instead of
151         gimple_get_relevant_ref_binfo.
152         (compute_known_type_jump_func): Likewise.
153         (update_jump_functions_after_inlining): Do not derive types from
154         constants.
155         (try_make_edge_direct_virtual_call): Likewise.
156         * tree.c (get_binfo_at_offset): Get type from non-artificial fields.
157
158 2010-12-22  Joseph Myers  <joseph@codesourcery.com>
159
160         * config/svr4.h: Remove.
161         * system.h (USING_SVR4_H, SVR4_ASM_SPEC): Poison.
162         * config.gcc, config/bfin/bfin.h, config/cris/cris.h,
163         config/fr30/fr30.h, config/frv/frv.h, config/i386/openbsdelf.h,
164         config/i386/vx-common.h, config/ia64/elf.h, config/ia64/ia64.h,
165         config/ia64/sysv4.h, config/iq2000/iq2000.h, config/m68k/linux.h,
166         config/m68k/m68kelf.h, config/mips/mips.h, config/mips/vxworks.h,
167         config/moxie/moxie.h, config/netbsd-aout.h, config/openbsd.h,
168         config/rs6000/sysv4.h, config/sh/elf.h, config/sh/sh.h,
169         config/sol2.h, config/sparc/sysv4.h, config/stormy16/stormy16.h,
170         config/v850/v850.h, config/vxworks.h: Remove or update comments
171         referring to svr4.h.
172
173 2010-12-22  Andrey Belevantsev  <abel@ispras.ru>
174
175         PR rtl-optimization/45352
176         PR rtl-optimization/46521
177         PR rtl-optimization/46522
178         * sel-sched.c (reset_sched_cycles_in_current_ebb): Recheck the DFA state
179         on the last iteration of the advancing loop.
180         (sel_sched_region_1): Propagate the rescheduling bit to the next block
181         also for empty blocks. 
182
183 2010-12-22  Alexandre Oliva  <aoliva@redhat.com>
184
185         PR debug/46724
186         * function.c (assign_parms_augmented_arg_list): Name and mark
187         DECL of result address as NAMELESS rather than IGNORED.
188         (assign_parms): Set DECL_VALUE_EXPR for indirect result.
189         * tree.h (tree_decl_common::decl_flag_2): Document RESULT_DECL.
190         (DECL_HAS_VALUE_EXPR_P): Accept RESULT_DECL.
191         * dwarf2out.c (loc_list_from_tree) <RESULT_DECL>: Use
192         DECL_VALUE_EXPR.
193         * dbxout.c (dbxout_expand_expr) <RESULT_DECL>: Likewise.
194         * var-tracking.c (vt_add_function_parameter): New, split out of...
195         (vt_add_function_parameters): ... this.  Handle incoming
196         pointer to hold result.
197
198 2010-12-22  Jie Zhang  <jie@codesourcery.com>
199
200         * config/arm/arm.c (output_move_double): Update the comment
201         above the function to reflect the current implementation.
202
203 2010-12-21  Steven Bosscher  <steven@gcc.gnu.org>
204
205         De-hookize profile infrastructure.
206         * value-prof.c (value_prof_hooks): Remove.
207         (struct value_prof_hooks): Remove.
208         (gimple_value_prof_hooks): Remove.
209         (gimple_register_value_prof_hooks): Remove.
210         (find_values_to_profile): Remove.
211         (value_profile_transformations): Remove.
212         (gimple_value_profile_transformations): No longer static.
213         (gimple_find_values_to_profile): Likewise.
214         * value-prof.h (gimple_register_value_prof_hooks): Remove prototype.
215         (find_values_to_profile): Likewise.
216         (value_profile_transformations): Likewise.
217         (tree_register_profile_hooks): Likewise.
218         (struct profile_hooks): Remove.
219         (tree_profile_hooks): Remove.
220         (gimple_find_values_to_profile): New protoype.
221         (gimple_value_profile_transformations): Likewise.
222         (gimple_init_edge_profiler): Likewise.
223         (gimple_gen_edge_profiler): Likewise.
224         (gimple_gen_interval_profiler): Likewise.
225         (gimple_gen_pow2_profiler): Likewise.
226         (gimple_gen_one_value_profiler): Likewise.
227         (gimple_gen_ic_profiler): Likewise.
228         (gimple_gen_ic_func_profiler): Likewise.
229         (gimple_gen_const_delta_profiler): Likewise.
230         (gimple_gen_average_profiler): Likewise.
231         (gimple_gen_ior_profiler): Likewise.
232         * profile.c (profile_hooks): Remove.
233         (instrument_edges): Call profiling functions directly instead
234         of through removed profile_hooks.
235         (instrument_values): Likewise.
236         (branch_prob): Call gimple_find_values_to_profile instead of
237         removed find_values_to_profile.
238         Call gimple_init_edge_profiler instead of removed hook.
239         (tree_register_profile_hooks): Remove.
240         * tree-profile.c (tree_init_ic_make_global_vars): Rename to
241         init_ic_make_global_vars.
242         (tree_init_edge_profiler): Rename to gimple_init_edge_profiler
243         and no longer static.
244         (tree_gen_edge_profiler, tree_gen_interval_profiler,
245         tree_gen_pow2_profiler, tree_gen_one_value_profiler,
246         tree_gen_ic_profiler, tree_gen_ic_func_profiler,
247         tree_gen_const_delta_profiler, tree_gen_average_profiler,
248         tree_gen_ior_profiler): Similarly renamed and no longer static.
249         (tree_profiling): Do not initialize tree profiling hooks.
250         (tree_profile_hooks): Remove.
251
252 2010-12-21  Jakub Jelinek  <jakub@redhat.com>
253
254         PR target/46880
255         * config/i386/sse.md (sse2_loadlpd, sse2_movsd): Fix shufpd source
256         operand.
257
258 2010-12-21  Ira Rosen  <irar@il.ibm.com>
259
260         PR tree-optimization/47001
261         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
262         the loads in reduction are different and there are no gaps between
263         them.
264
265 2010-12-21  Steven Bosscher  <steven@gcc.gnu.org>
266
267         PR middle-end/45310
268         * tree-ssa-phiprop.c (propagate_with_phi): Remove statement
269         completely from the function, including EH traces.
270
271 2010-12-21  Steven Bosscher  <steven@gcc.gnu.org>
272
273         PR rtl-optimization/46755
274         * ira.c (ira): If some dead edges were removed, find and delete
275         any blocks that might have become unreachable.
276
277 2010-12-21  Jakub Jelinek  <jakub@redhat.com>
278
279         PR rtl-optimization/47008
280         * postreload.c (reload_combine_note_store): Also handle
281         PRE_MODIFY and POST_MODIFY.
282
283 2010-12-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
284
285         * config/arm/arm.c (require_pic_register): Set INSN_LOCATOR for all
286         instructions injected into the prologue to prologue_locator.
287
288 2010-12-21  Jan Hubicka   <jh@suse.cz>
289
290         PR middle-end/47000
291         * tree-inline.c (estimate_operator_cost): Handle VIEW_CONVERT_EXPR.
292
293 2010-12-21  Jie Zhang  <jie@codesourcery.com>
294
295         * config/arm/arm-ldmstm.ml: Fix a typo in comment.
296
297 2010-12-21  Jakub Jelinek  <jakub@redhat.com>
298
299         PR middle-end/45852
300         * expr.c (store_expr): Ignore alt_rtl if equal to target,
301         but has side-effects.
302
303 2010-12-21  Anatoly Sokolov  <aesok@post.ru>
304
305         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Remove.
306         * config/sh/sh-protos.h (secondary_reload_info, sh_secondary_reload):
307         Remove forward declaration.
308         * config/sh/sh.c (sh_preferred_reload_class): New function.
309         (sh_secondary_reload): Make static.
310         (TARGET_PREFERRED_RELOAD_CLASS): Define.
311
312 2010-12-20  Joseph Myers  <joseph@codesourcery.com>
313
314         * config/alpha/linux.h (OPTION_GLIBC): Define differently if
315         SINGLE_LIBC.
316         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC):
317         Define differently if SINGLE_LIBC.
318         * config/rs6000/linux.h (OPTION_GLIBC): Define differently if
319         SINGLE_LIBC.
320         * config/rs6000/linux64.h (OPTION_GLIBC): Define differently if
321         SINGLE_LIBC.
322         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
323         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu): Define
324         SINGLE_LIBC instead of OPTION_GLIBC.
325         (*-*-uclinux*): Define DEFAULT_LIBC and SINGLE_LIBC.
326         (bfin*-uclinux*, moxie-*-uclinux*, m68k-*-uclinux*): Don't define
327         DEFAULT_LIBC or use linux.opt.
328
329 2010-12-20  Richard Henderson  <rth@redhat.com>
330
331         * config/mn10300/mn10300.c (mn10300_legitimize_pic_address): Generate
332         UNSPEC patterns by hand, with the proper mode; use gen_const_mem.
333         * config/mn10300/mn10300.md (call, call_value): Generate UNSPEC_PLT
334         by hand, with the proper mode.
335         (symGOT2reg, symGOT2reg_i, symGOTOFF2reg): Remove.
336         (symGOTOFF2reg_i, sym2PIC, sym2PLT): Remove.
337
338 2010-12-20  Sanjin Liu  <scliu@faraday-tech.com>
339         Mingfeng Wu  <mingfeng@faraday-tech.com>
340
341         * config/arm/arm-cores.def: Add Faraday CPU support -
342         fa526/fa626/fa606te/fa626te/fmp626/fa726te.
343         * config/arm/arm-tune.md: Regenerate.
344         * config/arm/arm.c (arm_fa726te_tune): New tune_params for fa726te
345         (fa726te_sched_adjust_cost): New cost function for fa726te.
346         (arm_issue_rate): Add fa726te.
347         * config/arm/arm.md (generic_sched): Add Faraday cores to generic_sched
348         and include machine description files.
349         * config/arm/bpabi.h (TARGET_FIX_V4BX_SPEC): Add fa526 and fa626.
350         * config/arm/t-arm (MD_INCLUDES): Include machine description files for
351         Faraday cores.
352         * config/arm/t-arm-elf: Add multilib option for Faraday cores.
353         * config/arm/t-linux-eabi: Add multilib option for Faraday cores except
354         fa526 and fa626.
355         * doc/invoke.texi: Document -mcpu for Faraday cores.
356         * config/arm/fa526.md: New file.
357         * config/arm/fa606te.md: New file.
358         * config/arm/fa626te.md: New file.
359         * config/arm/fmp626.md: New file.
360         * config/arm/fa726te.md: New file.
361
362 2010-12-20  Yvan Roux  <yvan.roux@st.com>
363
364         * config/arm/lib1funcs.asm (ARM_DIV_BODY case __OPTIMIZE_SIZE__): Fix
365         condition on IT instruction for early termination.
366
367 2010-12-20  Joseph Myers  <joseph@codesourcery.com>
368
369         * config/rs6000/freebsd.h (SVR4_ASM_SPEC): Don't define.
370         (DBX_REGISTER_NUMBER): Define.
371         * config/rs6000/lynx.h (DBX_REGISTER_NUMBER): Define.
372         * config/rs6000/netbsd.h (DBX_REGISTER_NUMBER): Define.
373         * config/rs6000/sysv4.h (SIZE_TYPE): Define.
374         (ASM_SPEC): Define without using SVR4_ASM_SPEC.
375         (DBX_REGISTER_NUMBER): Undefine.
376         * config.gcc (powerpc-*-eabispe*, powerpc-*-eabisimaltivec*,
377         powerpc-*-eabisim*, powerpc-*-elf*, powerpc-*-eabialtivec*,
378         powerpc-xilinx-eabi*, powerpc-*-eabi*, powerpc-*-rtems*,
379         powerpc-*-linux* | powerpc64-*-linux*, powerpc64-*-gnu*,
380         powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
381         powerpc-wrs-vxworks|powerpc-wrs-vxworksae, powerpcle-*-elf*,
382         powerpcle-*-eabisim*, powerpcle-*-eabi*): Don't use svr4.h.
383
384 2010-12-20  Iain Sandoe  <iains@gcc.gnu.org>
385             Jan Hubicka  <jh@suse.cz>
386
387         PR middle-end/46916
388         * opts.c (finish_options): Enable -freorder-functions
389         when -freorder-blocks-and-partition is active.
390         
391 2010-12-20  Iain Sandoe  <iains@gcc.gnu.org>
392
393         PR c++/46904
394         PR middle-end/46916
395         PR target/46950
396         * config/darwin.c (generating_for_darwin_version): New var.
397         (darwin_text_section): Remove.
398         (darwin_rodata_section): Do not check function section here.
399         (darwin_emit_unwind_label): Do not emit for Darwin >= 9.
400         Emit distinct labels for successive calls for the same decl.
401         (darwin_override_options): Set generating_for_darwin_version.
402         Add FIXME and disable -freorder-blocks-and-partition.
403         Suppress automatic asynchronous unwind tables for m32.
404         Switch off -freorder-blocks-and-partition when unwind tables
405         will be generated.  Update to use generating_for_darwin_version.
406         (darwin_function_section): Check for cases that need to be placed
407         in coalesced sections.
408         * config/darwin-sections.def: Define hot, cold, startup and exit sections
409         for both coalesced and regular code.
410         * config/darwin.h (USE_SELECT_SECTION_FOR_FUNCTIONS): Delete.
411         * config/darwin10.h (TARGET_ASM_EMIT_UNWIND_LABEL): Delete.
412         
413 2010-12-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
414
415         * doc/cppopts.texi: Use @var when appropriate.
416         * doc/extend.texi (Structure-Packing Pragmas): Likewise.
417         * doc/gimple.texi (Logical Operators)
418         (Adding a new GIMPLE statement code): Likewise.
419         * doc/invoke.texi (Target Options, Precompiled Headers):
420         Likewise.
421         * doc/plugins.texi (Plugins): Likewise.
422
423         * doc/install.texi (Configuration, Building, Testing, Specific):
424         Remove leading whitespace from examples.
425
426 2010-12-19  Andi Kleen  <ak@linux.intel.com>
427
428         PR lto/46905
429         * collect2.c (main): Handle -fno-lto.
430         * opts.c (common_handle_option): Handle -fno-lto.
431
432 2010-12-19  Eric Botcazou  <ebotcazou@adacore.com>
433
434         PR target/46729
435         * config/sparc/sparc.h (GLOBAL_OFFSET_TABLE_REGNUM): New macro.
436         (PIC_OFFSET_TABLE_REGNUM): Rewrite in terms of above macro.
437         * config/sparc/sparc.c (pic_helper_needed): Delete.
438         (global_offset_table): Likewise.
439         (pic_helper_symbol): Rename to...
440         (got_helper_rtx): ...this.
441         (global_offset_table_rtx): New global variable.
442         (sparc_got_symbol): Likewise.
443         (sparc_got): New static function.
444         (check_pic): Use local variable and call sparc_got.
445         (sparc_tls_symbol): Initialize to NULL_RTX.
446         (sparc_tls_got): In non-PIC mode, reload the GOT register for Sun TLS
447         and 32-bit ABI and copy the GOT symbol to a new register otherwise.
448         (get_pc_thunk_name): Rename local variable.
449         (gen_load_pcrel_sym): New wrapper around load_pcrel_sym{si,di}.
450         (load_pic_register): Rename to...
451         (load_got_register): ...this.  Adjust and call gen_load_pcrel_sym.
452         (sparc_expand_prologue): Do not test flag_pic.
453         (sparc_output_mi_thunk): Use pic_offset_table_rtx directly.
454         (sparc_file_end): Test got_helper_rtx instead of pic_helper_needed.
455         Rename local variable and do not call get_pc_thunk_name again.
456         * config/sparc/sparc.md (load_pcrel_sym): Add operand #3.
457
458 2010-12-19  Dave Korn  <dave.korn.cygwin@gmail.com>
459
460         PR middle-end/46674
461         PR middle-end/46221
462         * varasm.c (symbol_alias_set_t): New typedef for derived pointer_set
463         wrapper class.
464         (symbol_alias_set_create): New wrapper function.
465         (symbol_alias_set_destroy): Likewise.
466         (symbol_alias_set_contains): Likewise.
467         (symbol_alias_set_insert): Likewise.
468         (compute_visible_aliases): Use the above and return symbol_alias_set_t,
469         not a pointer_set.
470         (remove_unreachable_alias_pairs): Adjust likewise to match.
471         (finish_aliases_1): Likewise.
472
473 2010-12-19  Chung-Lin Tang  <cltang@codesourcery.com>
474
475         * config/arm/arm.c (arm_legitimate_index_p): Add VFP load/store
476         index range case. Change to SF/DFmode tests to avoid capturing HFmode.
477         (thumb2_legitimate_index_p): Same.
478
479 2010-12-18  Jakub Jelinek  <jakub@redhat.com>
480
481         PR tree-optimization/46969
482         * tree-parloops.c (struct reduction_info): Add reduc_version.
483         (reduction_info_hash): Return reduc_version field.
484         (reduction_phi): Set reduc_version to gimple_uid (phi).
485         (build_new_reduction): Set reduc_version to SSA_NAME_VERSION of
486         phi result.
487         (set_reduc_phi_uids): New function.
488         (gather_scalar_reductions): Call it at the end through htab_traverse.
489
490 2010-12-18  Nicola Pero  <nicola.pero@meta-innovation.com>
491
492         * c-parser.c (c_parser_objc_try_catch_finally_statement): Call
493         objc_maybe_warn_exceptions.
494         (c_parser_objc_synchronized_statement): Call
495         objc_maybe_warn_exceptions.
496         
497 2010-12-18  Jakub Jelinek  <jakub@redhat.com>
498
499         PR tree-optimization/46985
500         * tree-scalar-evolution.c (instantiate_scev_r): If chrec is NULL,
501         return it immediately.
502
503 2010-12-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
504
505         PR target/46915
506         * config/pa/pa.c (branch_to_delay_slot_p): Use next_active_insn instead
507         of next_real_insn.  Search forward checking for both ASM_INPUT and
508         ASM_OPERANDS asms until exit condition is found.
509         (branch_needs_nop_p): Likewise.
510         (use_skip_p): New function.
511         (output_cbranch): Use use_skip_p.
512         (output_bb, output_bvb): Likewise.
513
514 2010-12-18  Kai Tietz  <kai.tietz@onevision.com>
515
516         PR target/36834
517         * config/i386/i386.c (ix86_keep_aggregate_return_pointer):
518         New local function.
519         (ix86_return_pops_args): Use ix86_keep_aggregate_return_pointer
520         function instead of KEEP_AGGREGATE_RETURN_POINTER.
521         (ix86_handle_callee_pop_aggregate_return): New handler.
522         (ix86_attribute_table): Add new attribute
523         callee_pop_aggregate_return.
524         * doc/extend.texi (callee_pop_aggregate_return): Add
525         attribute documentation.
526
527 2010-12-18  Iain Sandoe  <iains@gcc.gnu.org>
528
529         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS):
530         Only set sjlj exceptions for NeXT/m32.
531
532 2010-12-18  Iain Sandoe  <iains@gcc.gnu.org>
533
534         * config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION):
535         Only expose when not building for target.
536
537 2010-12-17  Joseph Myers  <joseph@codesourcery.com>
538
539         * config/netbsd.opt, config/netbsd-elf.opt: New files.
540         * config.gcc (alpha*-*-netbsd*, arm*-*-netbsdelf*, arm*-*-netbsd*,
541         i[34567]86-*-netbsdelf*, i[34567]86-*-netbsd*, x86_64-*-netbsd*,
542         m68k*-*-netbsdelf*, mips*-*-netbsd*, powerpc-*-netbsd*,
543         sh*-*-netbsd*, sparc-*-netbsdelf*, sparc64-*-netbsd*,
544         vax-*-netbsdelf*, vax-*-netbsd*): Use these .opt files.
545
546 2010-12-17  Richard Henderson  <rth@redhat.com>
547
548         * regcprop.c (find_oldest_value_reg): Continue search instead of
549         failing if an element in the copy chain is of the wrong regclass.
550
551 2010-12-17  Paolo Bonzini  <bonzini@gnu.org>
552
553         PR c/20385
554         * function.c (used_types_insert): Handle ERROR_MARK.
555         * c-decl.c (grokdeclarator): Handle ERROR_MARK.
556         (declspecs_add_type): Leave error_mark_node in specs->type.
557         (finish_declspecs): Change it to integer_type_node here.
558         * c-parser.c (c_parser_peek_2nd_token): Move earlier.
559         (enum c_lookahead_kind): New.
560         (c_parser_next_token_starts_typename): New name of
561         c_parser_next_tokens_start_typename.  Accept lookahead enum
562         and handle it here instead of...
563         (c_parser_next_tokens_start_declaration): ... here.  Call it.
564         (c_parser_declspecs): Accept another argument.  Do not exit
565         on C_ID_ID if it is guessed to be an unknown typename.
566         (c_parser_parms_declarator): Use 2nd token to distinguish a K&R
567         declaration from an ANSI declaration starting with an unknown
568         typename.
569         (c_parser_struct_declaration, c_parser_objc_type_name,
570         c_parser_typeof_specifier, c_parser_declarator,
571         c_parser_direct_declarator_inner): Adjust calls.
572         (c_parser_parameter_declaration): Likewise.
573         (c_parser_type_name): Pass back an error_mark_node to the caller.
574         (c_parser_postfix_expression): Do error recovery when 
575         c_parser_type_name returns NULL.
576
577 2010-12-17  Joseph Myers  <joseph@codesourcery.com>
578
579         * config/i386/netware.h (ASM_SPEC, SIZE_TYPE, PTRDIFF_TYPE):
580         Define.
581         * config/i386/nto.h (LIB_SPEC, ASM_SPEC): Define.
582         (DBX_REGISTER_NUMBER): Undefine.
583         * config/i386/sol2.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
584         * config/i386/vxworksae.h (ASM_SPEC, SIZE_TYPE, PTRDIFF_TYPE):
585         Define.
586         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
587         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
588         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
589         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
590         i[3456x]86-*-netware*, i[34567]86-*-nto-qnx*,
591         i[34567]86-*-solaris2*,
592         i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae): Don't use svr4.h.
593
594 2010-12-17  H.J. Lu  <hongjiu.lu@intel.com>
595
596         * config/i386/i386.c (move_or_delete_vzeroupper_2): Replace
597         "BB [%i]" with "[bb %i]" in dump.
598         (move_or_delete_vzeroupper_1): Likewise.
599         (rescan_move_or_delete_vzeroupper): Likewise.  Always dump
600         upper 128bit state at exit.
601
602 2010-12-17  Joseph Myers  <joseph@codesourcery.com>
603
604         * config/interix.opt: New.
605         * config/interix.h (LINK_SPEC): Don't handle -soname*.
606         * config.gcc (i[34567]86-*-interix3*): Use interix.opt.
607
608 2010-12-17  Andrew Stubbs  <ams@codesourcery.com>
609
610         * config/arm/arm.md (maddhisi4, *maddhidi4): Use the canonical
611         operand order for plus.
612         Drop redundant % from constraints.
613
614 2010-12-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
615
616         * config/spu/t-spu-elf (LIB2FUNCS_EXCLUDE): Add _floattisf and
617         _floatunstisf.
618         * config/spu/spu.md ("floattisf2"): New expander.
619         ("floatunstisf2"): New insn pattern and splitter.
620         ("cgt_ti_m1"): New insn pattern.
621
622 2010-12-17  Bernd Schmidt  <bernds@codesourcery.com>
623
624         * config/arm/arm.c (arm_select_cc_mode): Before calling
625         arm_select_dominance_cc_mode for AND or IOR operations, ensure
626         that op is NE or EQ.
627
628 2010-12-17  Alexander Monakov  <amonakov@ispras.ru>
629
630         PR middle-end/46761
631         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Prefer
632         to use unadjusted UB.
633
634 2010-12-17  Dodji Seketeli  <dodji@redhat.com>
635
636         * dwarf2out.c (gen_type_die_with_usage): Do not try to emit debug
637         info for a redundant typedef that has DECL_ORIGINAL_TYPE set. Use
638         that underlying type instead.
639
640 2010-12-16  Jan Hubicka  <jh@suse.cz>
641
642         PR middle-end/44563 
643         * ipa-inline.c: Update doplevel comment.
644         (cgraph_estimate_size_after_inlining): Remove times attribute.
645         (cgraph_mark_inline_edge): Update.
646         (cgraph_mark_inline): Remove.
647         (cgraph_estimate_growth): Update.
648         (cgraph_check_inline_limits): Remove one only argument.
649         (cgraph_edge_badness): Update.
650         (cgraph_decide_recursive_inlining): Update.
651         (cgraph_decide_inlining_of_small_function): Fix handling of
652         tree_can_inline_p  and call_stmt_cannot_inline_p.
653         (cgraph_flatten): Likewise.
654         (cgraph_decide_inlining): Update.
655         (cgraph_decide_inlining_incrementally): Fix handling of
656         call_stmt_cannot_inline_p.
657
658 2010-12-16  Joseph Myers  <joseph@codesourcery.com>
659
660         * config/darwin.opt (dylinker, headerpad_max_install_names,
661         keep_private_externs, nofixprebinding, nomultidefs, noprebind,
662         noseglinkedit, object, prebind, prebind_all_twolevel_modules,
663         preload, private_bundle, pthread, seglinkedit, twolevel_namespace,
664         twolevel_namespace_hints, whatsloaded, whyload, y, Mach, X): New
665         Driver options.
666         * config/darwin.h (LINK_SPEC): Remove '*' after
667         headerpad_max_install_names.
668
669 2010-12-16  Sebastian Pop  <sebastian.pop@amd.com>
670
671         PR tree-optimization/46924
672         * graphite-sese-to-poly.c (detect_commutative_reduction): Do not
673         detect reductions outside the current SESE region.
674         * sese.h (stmt_in_sese_p): New.
675         (defined_in_sese_p): Call stmt_in_sese_p.
676
677 2010-12-16  Jakub Jelinek  <jakub@redhat.com>
678
679         PR tree-optimization/46966
680         * graphite-sese-to-poly.c (build_scop_drs): Call free_gimple_bb for
681         for bbs that are removed from SCOP_BBS vector.
682
683 2010-12-16  Eric Botcazou  <ebotcazou@adacore.com>
684
685         * tree-ssa-sccvn.c (vn_reference_lookup_3): Always punt if the call to
686         get_ref_base_and_extent returns -1 as the max size.
687
688 2010-12-16  Konrad Eisele  <konrad@gaisler.com>
689             Eric Botcazou  <ebotcazou@adacore.com>
690
691         Support for LEON processor
692         * config.gcc (sparc-*-elf*): Deal with sparc-leon specifically.
693         (sparc-*-linux*): Likewise.
694         (sparc-*-rtems*): Remove Solaris left-overs.
695         (sparc*-*-*): Remove obsolete sparc86x setting.
696         (sparc-leon*): Default to --with-cpu=v8 and --with-tune=leon.
697         * doc/invoke.texi (SPARC Options): Document -mcpu/-mtune=leon.
698         * config/sparc/sparc.h (TARGET_CPU_leon): Define.
699         (TARGET_CPU_sparc86x): Delete.
700         (TARGET_CPU_cypress): Define as alias to TARGET_CPU_v7.
701         (TARGET_CPU_f930): Define as alias to TARGET_CPU_sparclite.
702         (TARGET_CPU_f934): Likewise.
703         (TARGET_CPU_tsc701): Define as alias to TARGET_CPU_sparclet.
704         (CPP_CPU_SPEC): Add entry for -mcpu=leon.
705         (enum processor_type): Add PROCESSOR_LEON.  Reorganize.
706         * config/sparc/sparc.c (leon_costs): New cost array.
707         (sparc_option_override): Add entry for TARGET_CPU_leon and -mcpu=leon.
708         Initialize cost array to leon_costs if -mtune=leon.
709         * config/sparc/sparc.md (cpu attribute): Add leon.  Reorganize.
710         Include leon.md scheduling description.
711         * config/sparc/leon.md: New file.
712         * config/sparc/t-elf: Do not assemble Solaris startup files.
713         * config/sparc/t-leon: New file.
714         * config/sparc/t-leon3: Likewise.
715
716 2010-12-16  Jakub Jelinek  <jakub@redhat.com>
717
718         PR tree-optimization/43655
719         * tree-ssa-ter.c (is_replaceable_p): Don't use
720         gimple_references_memory_p for -O0, instead check for load
721         by looking at rhs.
722
723 2010-12-16  Sebastian Pop  <sebastian.pop@amd.com>
724
725         PR tree-optimization/46404
726         * graphite-clast-to-gimple.c (gloog): Call scev_reset.
727
728 2010-12-16  Anatoly Sokolov  <aesok@post.ru>
729
730         * config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
731         * config/sh/sh.c (sh_asm_output_addr_const_extra): New function.
732         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
733
734 2010-12-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
735
736         * config/spu/t-spu-elf (LIB2_SIDITI_CONV_FUNC): Define.
737         * config/spu/spu.h (MIN_UNITS_PER_WORD): Do not define.
738         (LIBGCC2_UNITS_PER_WORD): Define if not already defined.
739
740 2010-12-16  Jakub Jelinek  <jakub@redhat.com>
741
742         PR debug/46893
743         * cfgexpand.c (expand_debug_expr): If GET_MODE (op0) is VOIDmode,
744         use TYPE_MODE (TREE_TYPE (tem)) instead of mode1.
745
746 2010-12-16  Chung-Lin Tang  <cltang@codesourcery.com>
747
748         PR target/46883
749         * config/arm/arm.md
750         (zero_extendhisi2 for register input splitter): Change
751         "register_operand" to "s_register_operand".
752         (zero_extendqisi2 for register input splitter): Same.
753
754 2010-12-16  Jan Hubicka  <jh@suse.cz>
755
756         PR middle-end/46939
757         * predic.c (predict_paths_leading_to_edge): New function.
758         (apply_return_prediction): Use it.
759         (predict_paths_for_bb): Do not special case abnormals.
760
761 2010-12-16  Joseph Myers  <joseph@codesourcery.com>
762
763         * config.gcc (powerpc-*-lynxos*): Don't add lynx.opt to
764         extra_options twice.
765
766 2010-12-15  Joseph Myers  <joseph@codesourcery.com>
767
768         * doc/tm.texi.in (US_SOFTWARE_GOFAST): Don't document.
769         * doc/tm.texi: Regenerate.
770         * system.h (US_SOFTWARE_GOFAST): Poison.
771         * config.gcc (enable_gofast): Don't handle.
772         * config/gofast.h: Remove.
773         * config/mips/t-gofast: Remove.
774         * config/fp-bit.c (US_SOFTWARE_GOFAST): Don't handle.
775         * config/fp-bit.h (US_SOFTWARE_GOFAST): Don't handle.
776         * config/mips/elforion.h: Don't mention GOFAST in comment.
777         * config/mips/mips.c: Don't include gofast.h.
778         (mips_init_libfuncs): Don't call gofast_maybe_init_libfuncs.
779         * config/mips/t-sr71k (dp-bit.c, fp-bit.c): Don't define
780         US_SOFTWARE_GOFAST.
781         * config/sparc/sparc.c: Don't include gofast.h.
782         (sparc_init_libfuncs): Don't call gofast_maybe_init_libfuncs.
783         * config/spu/t-spu-elf (dp-bit.c, fp-bit.c): Don't undefine
784         US_SOFTWARE_GOFAST.
785
786 2010-12-14  Jan Hubicka  <jh@suse.cz>
787
788         * config/darwin.opt (dylinker, headerpad_max_install_names,
789         keep_private_externs, nofixprebinding, nomultidefs, noprebind,
790         noseglinkedit, object, prebind, prebind_all_twolevel_modules,
791         preload, private_bundle, pthread, seglinkedit, twolevel_namespace,
792         twolevel_namespace_hints, whatsloaded, whyload, y, Mach, X): New
793         Driver options.
794         * config/darwin.h (LINK_SPEC): Remove '*' after
795         headerpad_max_install_names.
796
797 2010-12-16  Sebastian Pop  <sebastian.pop@amd.com>
798
799         PR tree-optimization/46924
800         * graphite-sese-to-poly.c (detect_commutative_reduction): Do not
801         detect reductions outside the current SESE region.
802         * sese.h (stmt_in_sese_p): New.
803         (defined_in_sese_p): Call stmt_in_sese_p.
804
805 2010-12-16  Jakub Jelinek  <jakub@redhat.com>
806
807         PR tree-optimization/46966
808         * graphite-sese-to-poly.c (build_scop_drs): Call free_gimple_bb for
809         for bbs that are removed from SCOP_BBS vector.
810
811 2010-12-16  Eric Botcazou  <ebotcazou@adacore.com>
812
813         * tree-ssa-sccvn.c (vn_reference_lookup_3): Always punt if the call to
814         get_ref_base_and_extent returns -1 as the max size.
815
816 2010-12-16  Konrad Eisele  <konrad@gaisler.com>
817             Eric Botcazou  <ebotcazou@adacore.com>
818
819         Support for LEON processor
820         * config.gcc (sparc-*-elf*): Deal with sparc-leon specifically.
821         (sparc-*-linux*): Likewise.
822         (sparc-*-rtems*): Remove Solaris left-overs.
823         (sparc*-*-*): Remove obsolete sparc86x setting.
824         (sparc-leon*): Default to --with-cpu=v8 and --with-tune=leon.
825         * doc/invoke.texi (SPARC Options): Document -mcpu/-mtune=leon.
826         * config/sparc/sparc.h (TARGET_CPU_leon): Define.
827         (TARGET_CPU_sparc86x): Delete.
828         (TARGET_CPU_cypress): Define as alias to TARGET_CPU_v7.
829         (TARGET_CPU_f930): Define as alias to TARGET_CPU_sparclite.
830         (TARGET_CPU_f934): Likewise.
831         (TARGET_CPU_tsc701): Define as alias to TARGET_CPU_sparclet.
832         (CPP_CPU_SPEC): Add entry for -mcpu=leon.
833         (enum processor_type): Add PROCESSOR_LEON.  Reorganize.
834         * config/sparc/sparc.c (leon_costs): New cost array.
835         (sparc_option_override): Add entry for TARGET_CPU_leon and -mcpu=leon.
836         Initialize cost array to leon_costs if -mtune=leon.
837         * config/sparc/sparc.md (cpu attribute): Add leon.  Reorganize.
838         Include leon.md scheduling description.
839         * config/sparc/leon.md: New file.
840         * config/sparc/t-elf: Do not assemble Solaris startup files.
841         * config/sparc/t-leon: New file.
842         * config/sparc/t-leon3: Likewise.
843
844 2010-12-16  Jakub Jelinek  <jakub@redhat.com>
845
846         PR tree-optimization/43655
847         * tree-ssa-ter.c (is_replaceable_p): Don't use
848         gimple_references_memory_p for -O0, instead check for load
849         by looking at rhs.
850
851 2010-12-16  Sebastian Pop  <sebastian.pop@amd.com>
852
853         PR tree-optimization/46404
854         * graphite-clast-to-gimple.c (gloog): Call scev_reset.
855
856 2010-12-16  Anatoly Sokolov  <aesok@post.ru>
857
858         * config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
859         * config/sh/sh.c (sh_asm_output_addr_const_extra): New function.
860         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
861
862 2010-12-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
863
864         * config/spu/t-spu-elf (LIB2_SIDITI_CONV_FUNC): Define.
865         * config/spu/spu.h (MIN_UNITS_PER_WORD): Do not define.
866         (LIBGCC2_UNITS_PER_WORD): Define if not already defined.
867
868 2010-12-16  Jakub Jelinek  <jakub@redhat.com>
869
870         PR debug/46893
871         * cfgexpand.c (expand_debug_expr): If GET_MODE (op0) is VOIDmode,
872         use TYPE_MODE (TREE_TYPE (tem)) instead of mode1.
873
874 2010-12-16  Chung-Lin Tang  <cltang@codesourcery.com>
875
876         PR target/46883
877         * config/arm/arm.md
878         (zero_extendhisi2 for register input splitter): Change
879         "register_operand" to "s_register_operand".
880         (zero_extendqisi2 for register input splitter): Same.
881
882 2010-12-16  Jan Hubicka  <jh@suse.cz>
883
884         PR middle-end/46939
885         * predic.c (predict_paths_leading_to_edge): New function.
886         (apply_return_prediction): Use it.
887         (predict_paths_for_bb): Do not special case abnormals.
888
889 2010-12-16  Joseph Myers  <joseph@codesourcery.com>
890
891         * config.gcc (powerpc-*-lynxos*): Don't add lynx.opt to
892         extra_options twice.
893
894 2010-12-15  Joseph Myers  <joseph@codesourcery.com>
895
896         * doc/tm.texi.in (US_SOFTWARE_GOFAST): Don't document.
897         * doc/tm.texi: Regenerate.
898         * system.h (US_SOFTWARE_GOFAST): Poison.
899         * config.gcc (enable_gofast): Don't handle.
900         * config/gofast.h: Remove.
901         * config/mips/t-gofast: Remove.
902         * config/fp-bit.c (US_SOFTWARE_GOFAST): Don't handle.
903         * config/fp-bit.h (US_SOFTWARE_GOFAST): Don't handle.
904         * config/mips/elforion.h: Don't mention GOFAST in comment.
905         * config/mips/mips.c: Don't include gofast.h.
906         (mips_init_libfuncs): Don't call gofast_maybe_init_libfuncs.
907         * config/mips/t-sr71k (dp-bit.c, fp-bit.c): Don't define
908         US_SOFTWARE_GOFAST.
909         * config/sparc/sparc.c: Don't include gofast.h.
910         (sparc_init_libfuncs): Don't call gofast_maybe_init_libfuncs.
911         * config/spu/t-spu-elf (dp-bit.c, fp-bit.c): Don't undefine
912         US_SOFTWARE_GOFAST.
913
914 2010-12-14  Jan Hubicka  <jh@suse.cz>
915
916         * tree.c (get_file_function_name): Avoid using random seed on
917         GLOBAL_sub_I and GLOBAL_sub_D.
918
919 2010-12-15  Martin Jambor  <mjambor@suse.cz>
920
921         PR tree-optimization/46053
922         PR middle-end/46287
923         PR middle-end/46242
924         * cgraph.h (cgraph_indirect_call_info): New field thunk_delta.
925         * gimple.h (gimple_fold_obj_type_ref): Declaration removed.
926         (gimple_fold_call): Declare.
927         (gimple_adjust_this_by_delta): Likewise.
928         * cgraph.c (cgraph_make_edge_direct): New parameter delta.  Updated
929         all users.
930         (cgraph_clone_edge): Create a copy of indirect_info also for direct
931         edges.
932         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Adjust this
933         parameters.
934         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Renamed to
935         gimple_get_virt_mehtod_for_binfo, new parameter delta.  Do not search
936         through thunks, in fact bail out if we encounter one, check that
937         BINFO_VIRTUALS is not NULL.
938         (gimple_adjust_this_by_delta): New function.
939         (gimple_fold_obj_type_ref): Removed.
940         (gimple_fold_obj_type_ref_call): New function.
941         (fold_gimple_call): Renamed to gimple_fold_call, made external.
942         Updated users.  Call gimple_fold_obj_type_ref_call instead of
943         gimple_fold_obj_type_ref.
944         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Process
945         thunk deltas.
946         (ipcp_discover_new_direct_edges): Likewise.
947         * ipa-prop.c (ipa_make_edge_direct_to_target): New parameter delta.
948         Updated callers.
949         (ipa_write_indirect_edge_info): Stream thunk_delta.
950         (ipa_read_indirect_edge_info): Likewise.
951         * tree-ssa-ccp.c (ccp_fold_stmt): Use gimple_fold_call instead of
952         gimple_fold_obj_type_ref.
953
954 2010-12-15  Alexander Monakov  <amonakov@ispras.ru>
955
956         PR rtl-optimization/46649
957         * sel-sched-ir.c (purge_empty_blocks): Unconditionally skip the first
958         basic block in the region.
959
960 2010-12-15  Joseph Myers  <joseph@codesourcery.com>
961
962         * config/stormy16/stormy16.h (LINK_SPEC, WCHAR_TYPE): Define.
963         * config.gcc (xstormy16-*-elf): Don't use svr4.h.
964
965 2010-12-15  Joseph Myers  <joseph@codesourcery.com>
966
967         * config/rx/rx.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
968         * config.gcc (rx-*-elf*): Don't use svr4.h.
969
970 2010-12-14  Sebastian Pop  <sebastian.pop@amd.com>
971
972         PR tree-optimization/46845
973         * sese.c (scalar_evolution_in_region): Handle scop parameters
974         before scev analysis.
975
976 2010-12-14  Sebastian Pop  <sebastian.pop@amd.com>
977
978         PR tree-optimization/46928
979         * tree-data-ref.c (analyze_overlapping_iterations): Handle A[p] == A[p]
980         in data dependence analysis with p a parameter of the loop.
981
982 2010-12-14  Sebastian Pop  <sebastian.pop@amd.com>
983
984         PR tree-optimization/45948
985         * tree-loop-distribution.c (ssa_name_has_uses_outside_loop_p): New.
986         (stmt_has_scalar_dependences_outside_loop): New.
987         (stmt_generated_in_another_partition): New.
988         (add_scalar_computations_to_partition): New.
989         (rdg_build_partitions): Call add_scalar_computations_to_partition.
990
991 2010-12-14  Joseph Myers  <joseph@codesourcery.com>
992
993         * config/arc/arc.h (LIB_SPEC): Define.
994         * config.gcc (arc-*-elf*): Don't use svr4.h.
995
996 2010-12-14  Joseph Myers  <joseph@codesourcery.com>
997
998         * config/sh/elf.h (LIB_SPEC): Define.
999         * config.gcc (sh-*-elf* | sh[12346l]*-*-elf* | sh-*-symbianelf* |
1000         sh[12346l]*-*-symbianelf* | sh-*-linux* | sh[2346lbe]*-*-linux* |
1001         sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* |
1002         sh5l*-*-netbsd* | sh64-*-netbsd* | sh64l*-*-netbsd*, sh-*-rtems*,
1003         sh-wrs-vxworks): Don't use svr4.h.
1004
1005 2010-12-14  Jan Hubicka  <jh@suse.cz>
1006
1007         PR lto/46940
1008         PR lto/44463
1009         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Construct nodes
1010         for aliases when they are used.
1011
1012 2010-12-14  Joseph Myers  <joseph@codesourcery.com>
1013
1014         * config.gcc (sparc-*-elf*, sparc-*-rtems*, sparc-*-linux*,
1015         sparc-*-netbsdelf*, sparc*-*-solaris2*, sparc-wrs-vxworks,
1016         sparc64-*-elf*, sparc64-*-rtems*, sparc64-*-linux*,
1017         sparc64-*-netbsd*, sparc64-*-openbsd*): Don't use svr4.h.
1018
1019 2010-12-14  Thomas Klein  <th.r.klein@web.de>
1020
1021         * config/arm/arm.c (arm_expand_prologue): Report the static stack
1022         size if -fstack-usage is used.
1023         (thumb1_expand_prologue): Likewise.
1024
1025 2010-12-14  Jakub Jelinek  <jakub@redhat.com>
1026
1027         PR debug/46885
1028         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Use gsi_last_bb
1029         instead of gsi_last_nondebug_bb if bump_in_latch.
1030
1031         PR tree-optimization/46909
1032         * gimple-fold.c (and_var_with_comparison_1): Save partial
1033         result even in the is_and case, if both partial results
1034         are the same, return it.
1035         (or_var_with_comparison_1): Use is_or predicate instead of
1036         innercode == TRUTH_OR_EXPR test.  Save partial result
1037         even in the is_or case, if both partial results are the
1038         same, return it.  In the !is_or case when both partial
1039         results are the same, return the partial result instead
1040         of boolean_true_node.
1041
1042 2010-12-14  Jan Hubicka  <jh@suse.cz>
1043
1044         PR middle-end/46667
1045         * varasm.c (assemble_start_function): Do not call
1046         resolve_unique_section.
1047         * cfgexpand.c (gimple_expand_cfg): Resolve it here.
1048
1049 2010-12-14  Alexander Monakov  <amonakov@ispras.ru>
1050
1051         PR rtl-optimization/46875
1052         * sched-vis.c (print_pattern): Dump "sequence" for ADDR_VECs.
1053         * sel-sched-ir.c (bb_has_removable_jump_to_p): Forbid table jumps.
1054
1055 2010-12-14  Kaushik Phatak <kaushik.phatak@kpitcummins.com>
1056
1057         * config/h8300/h8300.md (define_split) : Add condition for
1058         "and with single_zero" splitter to handle 16-bit const operands.
1059         * config/h8300/h8300.md (define_split) : Add condition for
1060         "ior with single_one" splitter to handle 16-bit const operands.
1061         * config/h8300/h8300.md (define_split) : Add condition for
1062         "xor with single_one" splitter to handle 16-bit const operands. 
1063         * testsuite/gcc.dg/h8300-bit-insn-ice.c: New.
1064
1065 2010-12-13  Jan Hubicka  <jh@suse.cz>
1066
1067         PR middle-end/45388
1068         * ipa.c (cgraph_build_static_cdtor_1): Break out from ...  Add FINAL
1069         parameter.
1070         (cgraph_build_static_cdtor): ... here.
1071         (build_cdtor): Use cgraph_build_static_cdtor_1.
1072
1073 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
1074
1075         * config/m32c/m32c.h (ENDFILE_SPEC, LINK_SPEC, SIZE_TYPE,
1076         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1077         * config.gcc (m32c-*-rtems*, m32c-*-elf*): Don't use svr4.h.
1078
1079 2010-12-14  Bernd Schmidt  <bernds@codesourcery.com>
1080
1081         PR rtl-optimization/44374
1082         Reapply patch with fixes.
1083         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
1084         * df-core.c (df_set_bb_dirty): Set it.
1085         * ifcvt.c (find_memory): Remove function.
1086         (dead_or_predicable): Use can_move_insns_across.
1087         * df.h (can_move_insns_across): Declare function.
1088         * cfgcleanup.c (block_was_dirty): New static variable.
1089         (flow_find_head_matching_sequence): Test for epilogue notes.
1090         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
1091         than df_get_bb_dirty.
1092         (try_head_merge_bb): New static function.
1093         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
1094         is set.
1095         * df-problems.c: Include "target.h"
1096         (df_simulate_find_uses): New static function.
1097         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
1098         (find_memory, find_memory_store): New static functions.
1099         (can_move_insns_across): New function.
1100         * Makefile.in (df-problems.o): Update dependencies.
1101
1102 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
1103
1104         * config/xtensa/elf.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
1105         (DBX_REGISTER_NUMBER): Undefine.
1106         * config/xtensa/linux.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
1107         (DBX_REGISTER_NUMBER): Undefine.
1108         * config.gcc (xtensa*-*-elf*, xtensa*-*-linux*): Don't use svr4.h.
1109
1110 2010-12-13  Jack Howarth <howarth@bromo.med.uc.edu>
1111             Joseph Myers <joseph@codesourcery.com>
1112
1113         PR bootstrap/46650
1114         * system.h: Include cstring for cxx bootstrap.
1115
1116 2010-12-13  Jakub Jelinek  <jakub@redhat.com>
1117
1118         PR lto/46879
1119         * lto-streamer-out.c (output_gimple_stmt): Never replace first
1120         GIMPLE_DEBUG argument with MEM_REF.
1121
1122         PR debug/46867
1123         * var-tracking.c (emitted_notes, string_pointer_flags): Removed.
1124         (emit_note_insn_var_location): Remove ENABLE_RTL_CHECKING verification.
1125         (vt_emit_notes): Don't initialize and destroy emitted_notes.
1126
1127 2010-12-13  Nathan Froyd  <froydnj@codesourcery.com>
1128
1129         PR target/46040
1130         * config.gcc (arm*-*-linux-*eabi): Use bpabi-lib.h.
1131         (arm*-*-uclinux*eabi, arm*-*-eabi*): Likewise.
1132
1133 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
1134
1135         * config/v850/v850.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
1136         WCHAR_TYPE_SIZE): Define.
1137         * config.gcc (v850e1-*-*, v850e-*-*, v850-*-*): Don't use svr4.h.
1138
1139 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
1140
1141         * config.gcc (s390-*-linux*, s390x-*-linux*, s390x-ibm-tpf*):
1142         Don't use svr4.h.
1143
1144 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
1145
1146         * config/mn10300/linux.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
1147         WCHAR_TYPE_SIZE): Undefine.
1148         * config/mn10300/mn10300.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
1149         WCHAR_TYPE_SIZE): Define.
1150         * config.gcc (mn10300-*-*): Don't use svr4.h.
1151
1152 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
1153
1154         * config/m68k/linux.h (DBX_REGISTER_NUMBER): Undefine and
1155         redefine.
1156         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1157         * config.gcc (m68k-*-uclinux*, m68k-*-linux*): Don't use svr4.h.
1158
1159 2010-12-13  Alexandre Oliva  <aoliva@redhat.com>
1160
1161         PR debug/46756
1162         * jump.c (mark_all_labels): Skip debug insns.
1163
1164 2010-12-13  Alexandre Oliva  <aoliva@redhat.com>
1165
1166         PR debug/46782
1167         * cfgcleanup.c (try_forward_edges): Skip debug insns.
1168
1169 2010-12-12  Jan Hubicka  <jh@suse.cz>
1170             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1171
1172         * varasm.c (default_function_section): Check flag_reorder_functions
1173         and targetm.have_named_sections.
1174         * config/darwin.c (darwin_function_section): Check
1175         flag_reorder_functions.
1176
1177 2010-12-12  Finn Thain  <fthain@telegraphics.com.au>
1178
1179         PR target/46179
1180         * config/m68k/m68k.c (handle_move_double): Insert calls to
1181         m68k_final_prescan_insn to clean up @TLS operand syntax.
1182
1183 2010-12-10  Sebastian Pop  <sebastian.pop@amd.com>
1184
1185         PR tree-optimization/43023
1186         * tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p):
1187         Removed.
1188         (stores_zero_from_loop): Call stmt_stores_zero.
1189         * tree-data-ref.h (stmt_stores_zero): New.
1190         * tree-loop-distribution.c (generate_memset_zero): Do not return a
1191         boolean.  Call gcc_assert on stride_of_unit_type_p.
1192         (generate_builtin): Call stmt_stores_zero.
1193         (rdg_flag_all_uses): Removed.
1194         (rdg_flag_similar_memory_accesses): Removed.
1195         (build_rdg_partition_for_component): Removed parameter
1196         other_stores.  Removed call to rdg_flag_similar_memory_accesses.
1197         (can_generate_builtin): New.
1198         (similar_memory_accesses): New.
1199         (fuse_partitions_with_similar_memory_accesses): New.
1200         (rdg_build_partitions): Call
1201         fuse_partitions_with_similar_memory_accesses.
1202
1203 2010-12-10  Jakub Jelinek  <jakub@redhat.com>
1204
1205         PR rtl-optimization/46804
1206         * regmove.c (optimize_reg_copy_3): Look for REG_EQUAL note
1207         on the setter of src_reg rather than on insn.  If it is
1208         equal to the setter's original SET_SRC, replace it with its
1209         zero or sign extension instead of dropping it.
1210
1211 2010-12-10  Richard Guenther  <rguenther@suse.de>
1212
1213         PR lto/46808
1214         * lto-symtab.c (lto_symtab_merge_decls_2): Avoid type warnings
1215         after errors.
1216         (lto_symtab_merge_decls_1): Adjust.
1217
1218 2010-12-10  Dave Korn  <dave.korn.cygwin@gmail.com>
1219
1220         PR middle-end/46674
1221         PR lto/43157
1222         * target.def (mangle_assembler_name): New target asm_out hook.
1223         * targhooks.c (default_mangle_assembler_name): Add default hook
1224         implementation.
1225         * targhooks.h (default_mangle_assembler_name): Add prototype.
1226         * lto-symtab.c (lto_symtab_register_decl): Use new hook when
1227         processing DECL_ASSEMBLER_NAMEs for lto symtabs.
1228         (lto_symtab_get_resolution): Likewise.
1229         (lto_cgraph_replace_node): Likewise.
1230         (lto_symtab_prevailing_decl): Likewise.
1231         * lto-streamer-out.c (write_symbol): Likewise.
1232         * doc/tm.texi.in (TARGET_MANGLE_ASSEMBLER_NAME): Add @hook directive.
1233         * doc/tm.texi: Regenerate.
1234         * config/i386/cygming.h (TARGET_MANGLE_ASSEMBLER_NAME): Define to
1235         point at i386_pe_mangle_assembler_name.
1236         * config/i386/winnt.c (i386_pe_mangle_assembler_name): New function.
1237         * config/i386/i386-protos.h (i386_pe_mangle_assembler_name): Add
1238         prototype.
1239
1240 2010-12-10  Nathan Froyd  <froydnj@codesourcery.com>
1241
1242         * c-typeck.c (readonly_error): Delete.
1243
1244 2010-12-10  Jakub Jelinek  <jakub@redhat.com>
1245
1246         PR rtl-optimization/46865
1247         * rtl.c (rtx_equal_p_cb, rtx_equal_p): For last operand of
1248         ASM_OPERANDS and ASM_INPUT if integers are different,
1249         call locator_eq.
1250         * jump.c (rtx_renumbered_equal_p): Likewise.
1251
1252         PR tree-optimization/46864
1253         * tree-ssa-loop-im.c (loop_suitable_for_sm): Return false even
1254         when there are EDGE_EH exit edges.
1255
1256 2010-12-10  Tobias Burnus  <burnus@net-b.de>
1257
1258         PR fortran/46540
1259         * configure.ac: Handle --disable-libquadmath-support.
1260         * doc/install.texi: Document --disable-libquadmath and
1261         --disable-libquadmath-support
1262         * configure: Regenerate.
1263         * config.in: Regenerate.
1264
1265 2010-12-10  Jack Howarth  <howarth@bromo.med.uc.edu>
1266             Iain Sandoe  <iains@gcc.gnu.org>
1267
1268         PR 43751/target
1269         * config/darwin9.h (DSYMUTIL_SPEC): Add fortran source types.
1270
1271 2010-12-10  Iain Sandoe <iains@gcc.gnu.org>
1272
1273         * config/rs6000/rs6000.c
1274         (rs6000_darwin64_record_arg_advance_recurse): Name register increment
1275         explicitly.  (rs6000_darwin64_record_arg_recurse): Make sure we split
1276         long doubles when we run out of regs.   Also flag that this requires
1277         stack and therefore cannot be returned by value.
1278         (rs6000_darwin64_record_arg): Update comment.
1279         (rs6000_function_value): Likewise.
1280
1281 2010-12-10  Nicola Pero  <nicola.pero@meta-innovation.com>
1282
1283         * c-parser.c (c_parser_objc_class_definition): Recognize
1284         Objective-C 2.0 class extensions.
1285
1286 2010-12-10  Iain Sandoe <iains@gcc.gnu.org>
1287
1288         * config/darwin.c: Remove c-tree.h and c-lang.h
1289         * config/t-darwin: Remove dependencies on c-tree.h and c-lang.h.
1290
1291 2010-12-10  Joern Rennecke  <amylaar@spamcop.net>
1292
1293         PR target/46881
1294         * doc/tm.texi: Regenerate.
1295         * target.def: Fix "preferred" spelling.  Refer to rclass by its
1296         exact name.
1297         * config/arm/arm.c (arm_preferred_rename_class): Rename parameter class
1298         to rclass.
1299
1300 2010-12-09  Paul Koning  <ni1d@arrl.net>
1301
1302         * config/pdp11/pdp11-protos.h (output_move_double,
1303         output_move_quad): Delete.
1304         (output_move_multiple, pdp11_expand_operands): New functions.
1305         (pdp11_action, pdp11_partorder): New enums.
1306         * config/pdp11/pdp11.md (movdi, movsi, movdf, movsf): Use
1307         output_move_multiple.
1308         (adddi3, subdi3, negdi2): New patterns.
1309         (addsi3, subsi3, negsi2): Use pdp11_expand_operands.
1310         (abshi2): Delete.
1311         (neghi2, negqi2): Use PDPint iterator.
1312         * config/pdp11/pdp11.c (find_addr_reg, output_move_double,
1313         output_move_quad): Delete.
1314         (pdp11_expand_operands, output_move_multiple): New functions.
1315
1316 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1317
1318         * config/vax/linux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1319         * config.gcc (vax-*-linux*): Don't use svr4.h.
1320
1321 2010-12-09  Nathan Froyd  <froydnj@codesourcery.com>
1322
1323         * c-typeck.c (build_indirect_ref): Call invalid_indirection_error.
1324
1325 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1326
1327         * doc/extend.texi (Attribute Syntax): Correct description of
1328         attributes in pointer declarators.
1329
1330 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1331
1332         * config/mips/vxworks.h (DBX_REGISTER_NUMBER): Undefine.
1333         * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux*,
1334         mips*-*-linux*, mips-wrs-vxworks): Don't use svr4.h.
1335
1336 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1337
1338         * config/mep/mep.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
1339         WCHAR_TYPE_SIZE): Define.
1340         * config.gcc (mep-*-*): Don't use svr4.h.
1341
1342 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1343
1344         * config/mcore/mcore.h (PTRDIFF_TYPE, WCHAR_TYPE,
1345         WCHAR_TYPE_SIZE): Define.
1346         * config/svr3.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
1347         WCHAR_TYPE_SIZE): Don't define.
1348         * config.gcc (mcore-*-elf): Don't use svr4.h.
1349
1350 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1351
1352         * config.gcc (m32r-*-elf*, m32rle-*-elf*, m32r-*-rtems*,
1353         m32r-*-linux*, m32rle-*-linux*): Don't use svr4.h.
1354
1355 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1356
1357         * config/iq2000/iq2000.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
1358         WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1359         * config.gcc (iq2000*-*-elf*): Don't use svr4.h.
1360
1361 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1362
1363         * config.gcc (ia64*-*-linux*, ia64*-*-hpux*): Don't use svr4.h.
1364
1365 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1366
1367         * config/pa/pa32-linux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1368         * config.gcc (hppa*64*-*-linux*, hppa*-*-linux*): Don't use
1369         svr4.h.
1370
1371 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1372
1373         * config/moxie/moxie.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
1374         WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1375         * config/moxie/rtems.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
1376         WCHAR_TYPE, WCHAR_TYPE_SIZE): Undefine.
1377         * config.gcc (moxie-*-elf, moxie-*-uclinux*): Don't use svr4.h.
1378
1379 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1380
1381         * config/frv/frv.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
1382         WCHAR_TYPE_SIZE): Define.
1383         * config.gcc (frv-*-elf, frv-*-*linux*): Don't use svr4.h.
1384
1385 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1386
1387         * config/fr30/fr30.h (LIB_SPEC, LINK_SPEC, SIZE_TYPE,
1388         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1389         * config.gcc (fr30-*-elf): Don't use svr4.h.
1390
1391 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1392
1393         * config/cris/linux.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
1394         * config.gcc (crisv32-*-linux* | cris-*-linux*): Don't use svr4.h.
1395
1396 2010-12-09  Richard Guenther  <rguenther@suse.de>
1397
1398         PR middle-end/46844
1399         * gimple-fold.c (canonicalize_constructor_val): Canonicalize
1400         addresses.
1401
1402 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1403
1404         * config/i386/netware.h (TARGET_POSIX_IO): Define.
1405         * config/i386/nto.h (TARGET_POSIX_IO): Define.
1406         * config/ia64/hpux.h (TARGET_POSIX_IO): Define.
1407         * config/moxie/moxie.h (TARGET_POSIX_IO): Don't undefine.
1408         * config/openbsd.h (TARGET_POSIX_IO): Define.
1409         * config/rtems.h (TARGET_POSIX_IO): Define.
1410         * config/sh/embed-elf.h (TARGET_POSIX_IO): Don't undefine.
1411         * config/sol2.h (TARGET_POSIX_IO): Define.
1412         * config/svr4.h (TARGET_POSIX_IO): Don't define.
1413         * config/vxworksae.h (TARGET_POSIX_IO): Define.
1414
1415 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1416
1417         * config/i386/nto.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
1418         * config/ia64/hpux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1419         Define.
1420         * config/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
1421         undefine.
1422         * config/mips/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
1423         undefine.
1424         * config/mips/netbsd.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1425         Don't undefine.
1426         * config/rs6000/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1427         Don't undefine.
1428         * config/rs6000/linux64.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1429         Don't undefine.
1430         * config/sol2.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
1431         * config/sparc/netbsd-elf.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1432         Don't undefine.
1433         * config/sparc/openbsd64.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1434         Don't undefine.
1435         * config/sparc/sp64-elf.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1436         Don't undefine.
1437         * config/svr4.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
1438         define.
1439         * config/xtensa/elf.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
1440         undefine.
1441
1442 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1443
1444         * config/ia64/hpux.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Define for
1445         non-GNU assembler.
1446         * config/m68k/netbsd-elf.h (AS_NEEDS_DASH_FOR_PIPED_INPUT):
1447         Remove.
1448         * config/m68k/openbsd.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
1449         * config/mips/openbsd.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
1450         * config/sol2.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Define for
1451         non-GNU assembler.
1452         * config/sparc/sparc.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
1453         * config/svr4.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
1454
1455 2010-12-09  Martin Jambor  <mjambor@suse.cz>
1456
1457         * ipa-prop.c (compute_complex_ancestor_jump_func): Work also if the
1458         zero is the first phi parameter.
1459
1460 2010-12-09  Martin Jambor  <mjambor@suse.cz>
1461
1462         * ipa-prop.h (struct ipa_parm_adjustment): New field alias_ptr_type.
1463         * ipa-prop.c (ipa_modify_call_arguments): Use it.
1464         * tree-sra.c (splice_param_accesses): Test that all accesses have the
1465         same alias reference type.
1466         (turn_representatives_into_adjustments): Set alias_ptr_type of the
1467         adjustment.
1468
1469 2010-12-09  Martin Jambor  <mjambor@suse.cz>
1470
1471         PR middle-end/46734
1472         * tree-sra.c (splice_param_accesses): Check that there are not
1473         multiple ADDRESSABLE types.
1474
1475 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1476
1477         * config/arc/arc.h (ASM_SPEC): Remove %{v}.
1478         * config/bfin/bfin.h (ASM_SPEC): Remove %{v}.
1479         * config/cris/cris.h (ASM_SPEC): Remove %{v:-v}.
1480         * config/fr30/fr30.h (ASM_SPEC): Remove %{v}.
1481         * config/frv/frv.h (ASM_SPEC): Remove %{v}.
1482         * config/i386/linux.h (ASM_SPEC): Remove %{v}.
1483         * config/i386/linux64.h (ASM_SPEC): Remove %{v}.
1484         * config/i386/mingw-w64.h (ASM_SPEC): Remove %{v}.
1485         * config/i386/sol2-10.h (ASM_SPEC): Remove %{v}.
1486         * config/i386/vxworks.h (ASM_SPEC): Remove %{v}.
1487         * config/i386/x86-64.h (ASM_SPEC): Remove %{v}.
1488         * config/lm32/lm32.h (ASM_SPEC): Remove %{v}.
1489         * config/m32r/m32r.h (ASM_SPEC): Remove %{v}.
1490         * config/m68k/linux.h (ASM_SPEC): Remove %{v:-V}.
1491         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{v}.
1492         * config/mips/mips.h (ASM_SPEC): Remove %{v}.
1493         * config/mips/vxworks.h (ASM_SPEC): Remove %{v}.
1494         * config/pa/pa-linux.h (ASM_SPEC): Remove %{v:-V}.
1495         * config/rs6000/freebsd.h (SVR4_ASM_SPEC): Remove %{v}.
1496         * config/rs6000/linux64.h (ASM_SPEC): Remove %{v:-V}.
1497         * config/rs6000/vxworks.h (ASM_SPEC): Remove %{v:-v}.
1498         * config/sparc/openbsd64.h (ASM_SPEC): Remove %{v:-V}.
1499         * config/svr4.h (SVR4_ASM_SPEC): Remove %{v:-V}.
1500         * config/xtensa/elf.h (ASM_SPEC): Remove %{v}.
1501         * config/xtensa/linux.h (ASM_SPEC): Remove %{v}.
1502
1503 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1504
1505         * config/i386/openbsdelf.h (LINK_SPEC): Use %{r:} not %{r*:}.
1506         * config/mips/openbsd.h (LINK_SPEC): Use %{r:} not %{r*:}.
1507         * config/netbsd-aout.h (NETBSD_LINK_SPEC_AOUT): Use %{r:} not
1508         %{r*:}.
1509         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Use %{r:} not
1510         %{r*:}.
1511         * config/sparc/openbsd64.h (LINK_SPEC): Use %{r:} not %{r*:}.
1512         * config/vax/netbsd-elf.h (LINK_SPEC): Use %{r:} not %{r*:}.
1513
1514 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1515
1516         * config/alpha/freebsd.h (LINK_SPEC): Don't use
1517         %{!dynamic-linker:}.
1518         * config/alpha/linux-elf.h (LINK_SPEC): Likewise.
1519         * config/arm/freebsd.h (LINK_SPEC): Likewise.
1520         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Likewise.
1521         * config/bfin/linux.h (LINK_SPEC): Likewise.
1522         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Likewise.
1523         * config/frv/linux.h (LINK_SPEC): Likewise.
1524         * config/i386/freebsd.h (LINK_SPEC): Likewise.
1525         * config/i386/freebsd64.h (LINK_SPEC): Likewise.
1526         * config/i386/linux.h (LINK_SPEC): Likewise.
1527         * config/i386/linux64.h (LINK_SPEC): Likewise.
1528         * config/i386/openbsdelf.h (LINK_SPEC): Likewise.
1529         * config/ia64/freebsd.h (LINK_SPEC): Likewise.
1530         * config/ia64/linux.h (LINK_SPEC): Likewise.
1531         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
1532         * config/m32r/linux.h (LINK_SPEC): Likewise.
1533         * config/m68k/linux.h (LINK_SPEC): Likewise.
1534         * config/microblaze/linux.h (LINK_SPEC): Likewise.
1535         * config/mips/linux.h (LINK_SPEC): Likewise.
1536         * config/mips/linux64.h (LINK_SPEC): Likewise.
1537         * config/mips/openbsd.h (LINK_SPEC): Likewise.
1538         * config/mn10300/linux.h (LINK_SPEC): Likewise.
1539         * config/netbsd-elf.h (LINK_SPEC): Likewise.
1540         * config/pa/pa-linux.h (LINK_SPEC): Likewise.
1541         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC32,
1542         LINK_OS_LINUX_SPEC64): Likewise.
1543         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC,
1544         LINK_OS_LINUX_SPEC, LINK_OS_GNU_SPEC, LINK_OS_NETBSD_SPEC):
1545         Likewise.
1546         * config/s390/linux.h (LINK_SPEC): Likewise.
1547         * config/sh/linux.h (SUBTARGET_LINK_SPEC): Likewise.
1548         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
1549         * config/sparc/linux.h (LINK_SPEC): Likewise.
1550         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
1551         LINK_SPEC): Likewise.
1552         * config/sparc/openbsd64.h (LINK_SPEC): Likewise.
1553         * config/vax/linux.h (LINK_SPEC): Likewise.
1554         * config/xtensa/linux.h (LINK_SPEC): Likewise.
1555
1556 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1557
1558         * config/bfin/bfin.h (ASM_SPEC): Remove %{n} and %{T}.
1559         * config/frv/frv.h (ASM_SPEC): Likewise.
1560         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
1561         * config/i386/sol2.h (ASM_SPEC): Likewise.
1562         * config/m68k/linux.h (ASM_SPEC): Likewise.
1563         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
1564         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
1565         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
1566         * config/sol2.h (ASM_SPEC): Likewise.
1567         * config/sparc/linux.h (ASM_SPEC): Likewise.
1568         * config/sparc/linux64.h (ASM_SPEC): Likewise.
1569         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
1570         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
1571         * config/svr4.h (SVR4_ASM_SPEC): Likewise.
1572
1573 2010-12-09  Richard Guenther  <rguenther@suse.de>
1574
1575         * reginfo.c (struct subregs_of_mode_node): Remove.
1576         (subregs_of_mode): Likewise.
1577         (som_hash): Likewise.
1578         (som_eq): Likewise.
1579         (invalid_mode_changes): New bitmap.
1580         (record_subregs_of_mode): Get subregs_of_mode argument.
1581         Fill in invalid_mode_changes bitmap.
1582         (find_subregs_of_mode): Get subregs_of_mode argument and pass
1583         it through.
1584         (init_subregs_of_mode): Adjust.
1585         (finish_subregs_of_mode): Likewise.
1586         (invalid_mode_change_p): Query invalid_mode_changes bitmap.
1587
1588 2010-12-09  Richard Guenther  <rguenther@suse.de>
1589
1590         * ira.c (ira): Do not call finish_subregs_of_mode.
1591         * ira-costs.c (finish_costs): Call finish_subregs_of_mode.
1592
1593 2010-12-09  Richard Guenther  <rguenther@suse.de>
1594
1595         * rtl.h (invalid_mode_change_p): Adjust prototype.
1596         * reginfo.c (invalid_mode_change_p): Remove from argument.
1597         * ira-costs.c (print_allocno_costs): Adjust callers.
1598         (find_costs_and_classes): Likewise.
1599
1600 2010-12-09  Jakub Jelinek  <jakub@redhat.com>
1601
1602         * config/s390/s390.md (*mov<mode>cc): Change lgoc and stgoc to
1603         locg and stocg even in comment.
1604         (sync_old_<atomic><mode>): Give mode to UNSPEC_VOLATILE.
1605
1606         PR target/41082
1607         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Use stvx
1608         instead of stve*x.
1609         (altivec_expand_stv_builtin): For op0 use mode of operand 1 instead
1610         of operand 0.
1611         * config/rs6000/altivec.md (VI_scalar): New mode attr.
1612         (altivec_stve<VI_char>x, *altivec_stvesfx): Use scalar instead of
1613         vector mode for operand 0, put operand 1 into UNSPEC.
1614
1615 2010-12-09  Yao Qi  <yao@codesourcery.com>
1616
1617         * config/arm/arm.c (arm_preferred_rename_class): Implement targethook
1618         PREFERRED_RENAME_CLASS.
1619
1620 2010-12-08  Ian Lance Taylor  <iant@google.com>
1621
1622         * doc/sourcebuild.texi (Front End): Remove reference to
1623         snapshot-README and snapshot-index.html.
1624
1625 2010-12-08  Ian Lance Taylor  <iant@google.com>
1626
1627         * doc/sourcebuild.texi (Texinfo Manuals): Change update_web_docs
1628         to update_web_docs_svn.
1629         (Front End): Likewise.
1630
1631 2010-12-08  Iain Sandoe <iains@gcc.gnu.org>
1632
1633         gcc/config.gcc (with_cpu): Default i[34567]86-*-darwin* and
1634         x86_64-*-darwin* to with_cpu:-core2.
1635         gcc/config/i386/mmx.md (*mov<mode>_internal_rex64): Replace movq
1636         with movd for darwin assembler.
1637         gcc/config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
1638         (*vec_concatv2di_rex64_sse): Ditto.
1639
1640 2010-12-08  Richard Guenther  <rguenther@suse.de>
1641             Sebastian Pop  <sebastian.pop@amd.com>
1642
1643         PR tree-optimization/45230
1644         PR tree-optimization/45231
1645         PR tree-optimization/45370
1646         * sese.c (rename_uses): Returns a bool.  Call
1647         recompute_tree_invariant_for_addr_expr only on the RHS of a
1648         GIMPLE_ASSIGN.
1649         (graphite_copy_stmts_from_block): Call fold_stmt_inplace when
1650         rename_uses returns true.
1651         * tree-ssa-copy.c (replace_exp): Add a comment about calling
1652         fold_stmt_inplace after replace_exp.
1653
1654 2010-12-08  Mike Stump  <mikestump@comcast.net>
1655
1656         PR debug/46749
1657         * config/darwin.h (COLLECT_RUN_DSYMUTIL): Add.
1658         (DSYMUTIL_SPEC): Use `linker' flags instead to handle lto better.
1659         * config/darwin9.h (COLLECT_RUN_DSYMUTIL): Add.
1660         (DSYMUTIL_SPEC): Use `linker' flags instead to handle lto better.
1661         * collect2.c (post_ld_pass): Add.
1662         (process_args): Add.
1663         (maybe_run_lto_and_relink): Call post_ld_pass after ld.
1664         (main): Likewise.  Call process_args.
1665
1666 2010-12-08  Jakub Jelinek  <jakub@redhat.com>
1667
1668         PR middle-end/46844
1669         * regrename.c (check_new_reg_p): Add ATTRIBUTE_UNUSED to reg
1670         parameter.
1671
1672 2010-12-08  Richard Earnshaw  <rearnsha@arm.com>
1673
1674         PR target/46631
1675         * arm.c (thumb2_reorg): Also try to reduce <commutative_op> Rd, Rn, Rd
1676         into a 16-bit instruction.
1677
1678 2010-12-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
1679
1680         PR middle-end/42694
1681         * builtins.c (expand_builtin_pow_root): Don't optimize pow(x,y)
1682         where y is 0.25, 1./6., or 0.75 if the target does not have a sqrt
1683         instruction, but do optimize if y is 0.5 or 1./3. since that
1684         changes an expensive call into a cheaper one.
1685
1686 2010-12-08  Richard Guenther  <rguenther@suse.de>
1687
1688         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use a shift
1689         instead of a division to divide by BITS_PER_UNIT.
1690
1691 2010-12-08  Richard Guenther  <rguenther@suse.de>
1692
1693         * gimplify.c (gimple_tree_eq): Assert hashes are equal only
1694         when checking is enabled.
1695
1696 2010-12-07  Andrey Belevantsev  <abel@ispras.ru>
1697
1698         PR target/43603
1699         * haifa-sched.c (sched_create_recovery_edges): Update
1700         dominator info.
1701         * sel-sched-ir.c (maybe_tidy_empty_bb): Update dominator info
1702         after deleting an empty block.
1703         (tidy_control_flow): Also verify dominators.
1704         (sel_remove_bb): Update dominator info after removing a block.
1705         (sel_redirect_edge_and_branch_force): Assert that no unreachable
1706         blocks will be created. Update dominator info.
1707         (sel_redirect_edge_and_branch): Update dominator info when
1708         basic blocks do not become unreachable.
1709         (sel_remove_loop_preheader): Update dominator info.
1710
1711 2010-12-07  Richard Guenther  <rguenther@suse.de>
1712
1713         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
1714         Reset alignment information.
1715         (bump_vector_ptr): Likewise.
1716
1717 2010-12-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1718
1719         PR middle-end/46671
1720         PR target/46685
1721         * config/pa/pa.c (pa_function_section): New function.
1722         (TARGET_ASM_FUNCTION_SECTION): Define.
1723
1724 2010-12-07  Ian Lance Taylor  <iant@google.com>
1725             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1726
1727         PR bootstrap/46810
1728         * configure.ac: Disable AC_MSG_ERROR while looking for the C++
1729         preprocessor.
1730         * configure: Rebuild.
1731
1732 2010-12-07  Paul Koning  <ni1d@arrl.net>
1733
1734         * config/pdp11/pdp11.c (output_addr_const_pdp11): Output negative
1735         values with sign rather than as unsigned.
1736
1737 2010-12-07  Paul Koning  <ni1d@arrl.net>
1738
1739         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_SECTION): Define.
1740         (pdp11_function_section): New function.
1741
1742 2010-12-07  Joseph Myers  <joseph@codesourcery.com>
1743
1744         * config/mcore/mcore.c Don't include assert.h.
1745         (layout_mcore_frame, handle_structs_in_regs): Use gcc_assert.
1746         * config/spu/spu.c: Don't include assert.h.
1747         (spu_sms_res_mii): Use gcc_assert.
1748
1749 2010-12-07  Sebastian Pop  <sebastian.pop@amd.com>
1750
1751         PR tree-optimization/42327
1752         * tree-data-ref.c (omega_setup_subscript): Call build_int_cst
1753         instead of using integer_minus_one_node.
1754
1755 2010-12-07  Nathan Froyd  <froydnj@codesourcery.com>
1756
1757         PR c++/45330
1758         * params.def (CXX_MAX_NAMESPACES_FOR_DIAGNOSTIC_HELP): New parameter.
1759         * doc/invoke.texi (cxx-max-namespaces-for-diagnostic-help): Document.
1760
1761 2010-12-07  Richard Guenther  <rguenther@suse.de>
1762
1763         PR tree-optimization/46832
1764         * tree-ssa-math-opts.c (execute_optimize_widening_mul): Check
1765         that the call has a lhs.
1766
1767 2010-12-07  Yao Qi  <yao@codesourcery.com>
1768
1769         * Makefile.in: Add $(TARGET_H) to the regrename.o rule.
1770         * regrename.c (struct du_head): Add new element length.
1771         (sort_du_head, get_element, merge, merge_sort_comparison):
1772         New functions of merge sort implementation to du_head list.
1773         (regrename_optimize): Sort du_head linked list by length.
1774         Iterate registers in a preferred-register-first order.
1775         Move some code to ...
1776         (check_new_reg_p): here.  New function.
1777         (create_new_chain):  Initialize length.
1778         (scan_rtx_reg): Increase length for non-debug insns.
1779         * target.def: New hook preferred_rename_class.
1780         * targhook.c (default_preferred_rename_class): New.
1781         * targhook.h: Declare it.
1782         * doc/tm.texi.in: New hook TARGET_PREFERRED_RENAME_CLASS.
1783         * doc/tm.texi: Regenerate.
1784
1785 2010-12-07  Jakub Jelinek  <jakub@redhat.com>
1786
1787         PR debug/46799
1788         * tree-parloops.c (separate_decls_in_region): Use UNKNOWN_LOCATION
1789         instead of BUILTINS_LOCATION.
1790         (create_loop_fn): Add LOC argument, pass it to build_decl instead of
1791         BUILTINS_LOCATION.
1792         (create_parallel_loop): Add LOC argument, use it for OMP clauses
1793         and GIMPLE_*OMP* statements.
1794         (gen_parallel_loop): Determine locus for the parallel loop, pass it
1795         to create_loop_fn and create_parallel_loop.
1796         * cfgexpand.c (gimple_expand_cfg): For builtin functions, call
1797         set_curr_insn_source_location (UNKNOWN_LOCATION).
1798
1799 2010-12-07  Joern Rennecke  <amylaar@spamcop.net>
1800             Richard Guenther  <rguenther@suse.de>
1801
1802         PR target/46737
1803         * config/bfin/bfin.c (BB_AUX_INDEX): Cast to intptr_t.
1804         (bfin_reorder_loops): Change type of index to intptr_t.
1805
1806 2010-12-07  Richard Guenther  <rguenther@suse.de>
1807
1808         PR tree-optimization/46726
1809         * tree-inline.c (estimate_num_insns): Special case pow (x, 2.0).
1810
1811 2010-12-07  Richard Guenther  <rguenther@suse.de>
1812
1813         * tree-ssa-math-opts.c (execute_optimize_widening_mul): Unlink
1814         virtual operands.
1815
1816 2010-12-07  Nicola Pero  <nicola.pero@meta-innovation.com>
1817
1818         * c-parser.c (c_parser_typeof_specifier): Removed special
1819         treatment of objc_volatilized attribute for Objective-C.
1820
1821 2010-12-06  Vladimir Makarov  <vmakarov@redhat.com>
1822
1823         * ira.c (update_equiv_regs): Prohibit move insns if
1824         pressure-sensitive scheduling was done.
1825
1826 2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1827
1828         * c-parser.c (c_parser_for_statement): Use c_fully_fold() instead
1829         of c_process_expr_stmt() for the iterating and collection
1830         expressions of an Objective-C fast enumeration loop.
1831
1832 2010-12-06  Jakub Jelinek  <jakub@redhat.com>
1833
1834         PR debug/45997
1835         * dwarf2out.c (modified_type_die): If both is_const_type and
1836         is_volatile_type is set, start with DW_TAG_const_type or
1837         DW_TAG_volatile_type depending on where we get qualified type
1838         in the recursive call.
1839
1840         PR target/43897
1841         * config/ia64/ia64.c (rtx_needs_barrier): Handle asm CLOBBER
1842         as a store into that register.
1843
1844         PR tree-optimization/46528
1845         PR debug/46338
1846         * profile.c (branch_prob): Make sure last is never set to a debug
1847         stmt.
1848
1849         PR debug/46771
1850         * reginfo.c (init_subregs_of_mode): Don't call find_subregs_of_mode
1851         on DEBUG_INSNs.
1852
1853         PR rtl-optimization/46777
1854         * cfglayout.c (duplicate_insn_chain): Avoid duplicating
1855         also barrier after tablejump.
1856
1857 2010-12-06  Joern Rennecke  <amylaar@spamcop.net>
1858             Richard Henderson  <rth@redhat.com>
1859
1860         PR target/46740
1861         * config/vax/vax.c (vax_output_int_move): Fold #if into if.
1862
1863 2010-12-06  Eric Botcazou  <ebotcazou@adacore.com>
1864
1865         * config/sparc/sol2.h (PUSHSECTION_FORMAT): Redefine unconditionally.
1866         * config/sparc/sol2-gas.h (PUSHSECTION_FORMAT): Redefine.
1867
1868 2010-12-06  Joern Rennecke  <amylaar@spamcop.net>
1869
1870         PR target/46735
1871         * config/frv/predicates.md (gpr_or_int12_operand): Use IN_RANGE.
1872         (gpr_fpr_or_int12_operand, gpr_or_int10_operand): Likewise.
1873         (int12_operand, int_2word_operand, uint16_operand): Likewise.
1874         (fpr_or_int6_operand, int6_operand, int5_operand): Likewise.
1875         (uint5_operand, uint4_operand): Likewise.
1876         * config/frv/frv.h (IN_RANGE_P): Delete.
1877         (GPR_P, FPR_P, CC_P, ICC_P, FCC_P, CR_P, ICR_P, FCR_P): Use IN_RANGE.
1878         (ACC_P, ACCG_P, SPR_P, CONST_OK_FOR_I, CONST_OK_FOR_J): Likewise.
1879         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
1880         (CONST_OK_FOR_P): Likewise.
1881         * config/frv/frv.md (*movqicc_internal2_int): Likewise.
1882         (*movqicc_internal2_float, *movhicc_internal2_int): Likewise.
1883         (*movhicc_internal2_float, *movsicc_internal2_int): Likewise.
1884         (*movsicc_internal2_float, casesi): Likewise.
1885         * config/frv/frv.c (frv_frame_offset_rtx): Likewise.
1886         (frv_asm_output_mi_thunk, frv_legitimate_address_p_1): Likewise.
1887         (frv_emit_movsi, output_move_single, frv_emit_cond_move): Likewise.
1888         (frv_split_cond_move, frv_rtx_costs): Likewise.
1889
1890         PR target/46739
1891         * config/mmix/mmix.c (mmix_intval): Split shift count.
1892
1893 2010-12-06  H.J. Lu  <hongjiu.lu@intel.com>
1894
1895         * config/i386/i386.c (m_COREI7): New.
1896         (initial_ix86_tune_features): Turn on
1897         X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL and
1898         X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL for Core i7.
1899
1900 2010-12-06  H.J. Lu  <hongjiu.lu@intel.com>
1901
1902         * config.gcc: Allow corei7-avx for --with-arch/--with-cpu.
1903
1904         * config/i386/driver-i386.c (host_detect_local_cpu): Support
1905         Sandy Bridge.
1906
1907         * config/i386/i386.c (override_options): Handle "corei7-avx".
1908
1909         * doc/invoke.texi: Document corei7-avx.
1910
1911 2010-12-06  Richard Guenther  <rguenther@suse.de>
1912
1913         PR tree-optimization/46806
1914         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do not
1915         coalesce different types.
1916
1917 2010-12-06  Richard Guenther  <rguenther@suse.de>
1918
1919         PR tree-optimization/46785
1920         * tree-vect-loop.c (vect_is_simple_reduction_1): Also allow
1921         call statements as operand definition.
1922
1923 2010-12-06  Mingjie Xing  <mingjie.xing@gmail.com>
1924
1925         * doc/tm.texi.in: Fix typo.
1926         * doc/tm.texi: Regenerate.
1927
1928 2010-12-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1929
1930         * config.gcc [hppa[12]*-*-hpux10*, hppa[12]*-*-hpux11*]: Fix typo in
1931         last change.
1932
1933 2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1934
1935         * c-family/c-common.h: Removed the declarations of all the objc_
1936         callbacks, and moved them into c-objc.h.  Removed
1937         objc_ivar_visibility_kind and moved it into c-objc.h.
1938         * c-family/c-objc.h: New file.
1939         * c-family/c-common.c: Include c-objc.h.
1940         * c-family/c-format.c: Same change.
1941         * c-family/stub-objc.c: Same change.
1942         * c-decl.c: Include c-family/c-objc.h.
1943         * c-parser.c: Same change.
1944         * c-typeck.c: Same change.
1945         * c-config-lang.in (gtfiles): Added c-family/c-objc.h.
1946         * Makefile.in (c-decl.o): Depend on c-family/c-objc.h.
1947         (c-parser.o): same change.
1948         (c-typeck.o): Same change.
1949         (c-family/c-format.o): Same change.
1950         (c-family/stub-objc.o): Same change.
1951         (c-family/c-common.o): Same change.
1952         (PLUGIN_HEADERS): Added c-family/c-objc.h.
1953
1954 2010-12-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1955
1956         * config.gcc [hppa[12]*-*-hpux10*, hppa[12]*-*-hpux11*]:  Ignore
1957         --with-dwarf2 option.
1958
1959 2010-12-03  Jan Hubicka  <jh@suse.cz>
1960
1961         * lto-streamer-in.c (input_cfg): Fix pasto.
1962
1963 2010-12-03  Jan Hubicka  <jh@suse.cz>
1964
1965         * ipa.c (cgraph_externally_visible_p): Do not localize builtins
1966         and functions with user asm defined names.
1967         (varpool_externally_visible_p): Do not localize vars with user
1968         asm defined names.
1969
1970 2010-12-03  Jan Hubicka  <jh@suse.cz>
1971
1972         * dwarf2asm.c (dw2_output_indirect_constant_1): Set DECL_ASSEMBLER_NAME
1973         to prevent mangling with lto frontend.
1974
1975 2010-12-03  Jan Hubicka  <jh@suse.cz>
1976
1977         * Makefile.in (LTO_STREAMER_H): Add GCOV_IO_H.
1978         * lto-cgraph.c (merge_profile_summaries): Fix thinko.
1979
1980 2010-12-03  Jan Hubicka  <jh@suse.cz>
1981
1982         PR tree-optimization/46760
1983         * cgraph.c (cgraph_create_node): Initialize count_materialization_scale.
1984         * cgraph.h (struct cgraph_node): Add count_materialization_scale.
1985         * lto-cgraph.c (lto_output_edge): Fix assert.
1986         (lto_output_node): Output count_materialization_scale.
1987         (output_profile_summary): Output only runs and sum_max.
1988         (input_node): Input count_materialization_scale.
1989         (input_profile_summary): Read data into file specific gcov summary.
1990         (merge_profile_summaries): New function.
1991         (input_cgraph): Update call of input_profile_summary;
1992         call merge_profile_summaries.
1993         * lto-streamer-in.c (input_cfg): Add count_materialization_scale arg;
1994         rescale counts at read in.
1995         (intput_bb): Likewise.
1996         (input_function): Update call of input_bb.
1997         (lto_read_body): Update call of input_cfg.
1998         * lto-streamer.h: Inlclude gcov-io.h
1999         (lto_file_decl_data): Add gcov_ctr_summary.
2000
2001 2010-12-03  Dave Korn  <dave.korn.cygwin@gmail.com>
2002
2003         * doc/tm.texi.in (Cond. Exec. Macros): Rename node from this ...
2004         (Cond Exec Macros): ... to this.
2005         * doc/tm.texi: Regenerate.
2006
2007 2010-12-03  Jason Merrill  <jason@redhat.com>
2008
2009         PR debug/46123
2010         * dwarf2out.c (gen_tagged_type_die): Don't put local types in
2011         a declaration DIE.
2012
2013 2010-12-03  Nathan Froyd  <froydnj@codesourcery.com>
2014
2015         * config/arm/arm.c (arm_legitimate_index_p): Split
2016         VALID_NEON_QREG_MODE and VALID_NEON_DREG_MODE cases.  Permit
2017         slightly larger constants in the latter case.
2018         (thumb2_legitimate_index_p): Likewise.
2019
2020 2010-12-03  Joseph Myers  <joseph@codesourcery.com>
2021
2022         * common.opt (N, Q, Qn, Qy, Z, n, r, s, t): New options.
2023         * gcc.c (cc1_options): Add %{Qy:}.
2024
2025 2010-12-03  Joseph Myers  <joseph@codesourcery.com>
2026
2027         * gcc.c (LINK_COMMAND_SPEC): Don't handle -A, -d or -m.
2028         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
2029         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
2030
2031 2010-12-03  Alexander Monakov  <amonakov@ispras.ru>
2032
2033         PR rtl-optimization/45354
2034         * sel-sched-ir.c (jump_leads_only_to_bb_p): Rename to ...
2035         (bb_has_removable_jump_to_p): This.  Update all callers. Make static.
2036         Allow BBs ending with a conditional jump.  Forbid EDGE_CROSSING jumps.
2037         * sel-sched-ir.h (jump_leads_only_to_bb_p): Delete prototype.
2038
2039 2010-12-03  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2040
2041         * basic-block.h (struct edge_prediction): Remove forward
2042         declaration.
2043         * tree-flow.h (struct edge_prediction): Move from here...
2044         * predict.c (struct edge_prediction): ...to here.
2045         * cselib.h (struct elt_list): Move from here...
2046         * cselib.c (struct elt_list): ...to here.
2047
2048 2010-12-02  Ian Lance Taylor  <iant@google.com>
2049
2050         * gcc.c (default_compilers): Add entry for ".go".
2051         * common.opt: Add -static-libgo as a driver option.
2052         * doc/install.texi (Configuration): Mention libgo as an option for
2053         --enable-shared.  Mention go as an option for --enable-languages.
2054         * doc/invoke.texi (Overall Options): Mention .go as a file name
2055         suffix.  Mention go as a -x option.
2056         * doc/frontends.texi (G++ and GCC): Mention Go as a supported
2057         language.
2058         * doc/sourcebuild.texi (Top Level): Mention libgo.
2059         * doc/standards.texi (Standards): Add section on Go language.
2060         Move references for other languages into their own section.
2061         * doc/contrib.texi (Contributors): Mention that I contributed the
2062         Go frontend.
2063
2064 2010-12-03  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2065
2066         * tree.h (struct call_expr_arg_iterator_d): Remove GTY tag.
2067         (const_call_expr_arg_iterator_d): Likewise.
2068         (expanded_location): Likewise.
2069         * c-tree.h (struct c_arg_tag_d): Likewise.
2070         * dwarf2out.c (struct cfa_loc): Likewise.
2071         (struct skeleton_chain_struct): Likewise.
2072         * except.c (struct ttypes_filter): Likewise.
2073         * cselib.h (struct cselib_val_struct): Likewise.
2074         (elt_loc_list): Likewise.
2075         (elt_list): Likewise.
2076         * varasm.c (struct addr_const): Likewise.
2077         * tree-flow.h (struct edge_prediction): Likewise.
2078         (struct int_tree_map): Likewise.
2079         (struct _edge_var_map): Likewise.
2080
2081 2010-12-02  H.J. Lu  <hongjiu.lu@intel.com>
2082
2083         PR target/46768
2084         * config/i386/i386.c (initial_ix86_tune_features): Turn on
2085         X86_TUNE_INTER_UNIT_MOVES for Core 2 and Core i7.
2086
2087 2010-12-02  H.J. Lu  <hongjiu.lu@intel.com>
2088
2089         * config.gcc: Allow corei7 for --with-arch=/--with-cpu=.
2090
2091 2010-12-02  Ian Lance Taylor  <iant@google.com>
2092
2093         * configure.ac: AC_DEFINE ENABLE_BUILD_WITH_CXX.  Check for C++
2094         header files unordered_map, tr1/unordered_map, and ext/hash_map.
2095         * configure, config.in: Rebuild.
2096
2097 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
2098
2099         PR target/46685
2100         * config/sparc/sparc.c (can_use_mov_pic_label_ref): New predicate.
2101         (sparc_expand_move): Call it to decide whether to emit the special
2102         mov{si,di}_pic_label_ref patterns.
2103         (sparc_legitimize_pic_address): Call it to decide whether to emit
2104         the regular PIC sequence for labels.  Fix long line.
2105         (sparc_file_end): Set is_thunk for the PIC helper.
2106
2107 2010-12-02  Eric Botcazou  <ebotcazou@adacore.com>
2108
2109         * tree.c (build_range_type_1): Do not SET_TYPE_STRUCTURAL_EQUALITY
2110         for a non-shared type.
2111
2112 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
2113
2114         PR middle-end/45297
2115         * tree-scalar-evolution.c (interpret_rhs_expr): Handle ADDR_EXPR
2116         with MEM_REFs as POINTER_PLUS_EXPR.
2117
2118 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
2119
2120         * config/i386/linux.h, config/m32r/linux.h, config/m68k/linux.h,
2121         config/sparc/linux.h, config/sparc/linux64.h: Remove comments
2122         mentioning /lib/elf.
2123
2124 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
2125
2126         * config/bfin/bfin.h (LINK_SPEC): Remove %{b}.
2127         * config/frv/frv.h (LINK_SPEC): Remove %{b}.
2128         * config/i386/netware.h (LINK_SPEC): Remove %{b}.
2129         * config/i386/nto.h (LINK_SPEC): Remove %{b}.
2130         * config/lm32/uclinux-elf.h (LINK_SPEC): Remove %{b}.
2131         * config/sol2.h (LINK_SPEC): Remove %{b}.
2132         * config/svr4.h (LINK_SPEC): Remove %{b}.
2133
2134 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
2135
2136         * config/i386/freebsd.h (LINK_SPEC): Cut long comment.
2137         * config/i386/linux.h (LINK_SPEC): Cut long comment.
2138         * config/i386/netware.h (LINK_SPEC): Remove %{V}.
2139         * config/m32r/linux.h (LINK_SPEC): Cut long comment.
2140         * config/m68k/linux.h (LINK_SPEC): Cut long comment.
2141         * config/sparc/linux.h (LINK_SPEC): Cut long comment.
2142         (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
2143         * config/sparc/linux64.h (LINK_SPEC): Cut long comment.
2144         (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
2145         * config/sparc/netbsd-elf.h (ASM_SPEC): Remove %{V} and
2146         %{v:%{!V:-V}}.
2147
2148 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
2149
2150         * gcc.c (trad_capable_cpp, default_compilers): Don't handle
2151         -ftraditional.
2152
2153 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
2154
2155         * config/alpha/freebsd.h (LINK_SPEC): Don't handle -Wl,.
2156         * config/bfin/bfin.h (ASM_SPEC): Don't handle -Wa,.
2157         * config/frv/frv.h (ASM_SPEC): Don't handle -Wa,.
2158         * config/lm32/uclinux-elf.h (LINK_SPEC): Don't handle -Wl,.
2159         * config/microblaze/microblaze.h (LINK_SPEC): Don't handle -Wl,.
2160         * config/mn10300/linux.h (ASM_SPEC): Don't handle -Wa,.
2161         * config/pa/pa-linux.h (ASM_SPEC): Don't handle -Wa,.
2162         * config/rs6000/freebsd.h (SVR4_ASM_SPEC): Don't handle -Wa,.
2163         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Don't handle -Wa,.
2164         * config/rs6000/sysv4.h (LINK_SPEC): Don't handle -Wl,.
2165         * config/rs6000/vxworks.h (ASM_SPEC): Don't handle -Wa,.
2166         * config/sol2.h (ASM_SPEC): Don't handle -Wa,.
2167         * config/sparc/linux.h (ASM_SPEC): Don't handle -Wa,.
2168         * config/sparc/linux64.h (ASM_SPEC): Don't handle -Wa,.
2169         * config/sparc/sp-elf.h (ASM_SPEC): Don't handle -Wa,.
2170         * config/sparc/sysv4.h (ASM_SPEC): Don't handle -Wa,.
2171         * config/svr4.h (SVR4_ASM_SPEC): Don't handle -Wa,.
2172         * config/vxworks.h (VXWORKS_LINK_SPEC): Don't handle -Wl,.
2173
2174 2010-12-02  Paul Koning  <ni1d@arrl.net>
2175
2176         * config/pdp11/pdp11.c (output_jump): Map unsigned to signed
2177         opcodes if CC_NO_OVERFLOW is set.
2178         (notice_update_cc_on_set): Correct setting of CC0 as a side
2179         effect; set CC_NO_OVERFLOW for cases where C flag is not
2180         meaningful.
2181
2182 2010-12-02  Ian Lance Taylor  <iant@google.com>
2183
2184         * doc/install.texi (Configuration): Update default for
2185         --with-boot-ldflags.
2186
2187 2010-12-02  Nathan Froyd  <froydnj@codesourcery.com>
2188
2189         PR c/45062
2190         * c-decl.c (grokparms): Set arg_info->parms to NULL_TREE when
2191         !funcdef_flag.
2192
2193 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
2194
2195         PR tree-optimization/45199
2196         * tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p): New.
2197         (stores_zero_from_loop): Call
2198         mem_write_stride_of_same_size_as_unit_type_p.
2199         * tree-data-ref.h (stride_of_unit_type_p): New.
2200         * tree-loop-distribution.c (generate_memset_zero): Simplified.
2201         Call stride_of_unit_type_p.
2202         (build_rdg_partition_for_component): Do not call
2203         rdg_flag_similar_memory_accesses when
2204         flag_tree_loop_distribute_patterns is set.
2205
2206 2010-12-02  Richard Guenther  <rguenther@suse.de>
2207
2208         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Disregard
2209         sign-changing conversions for induction detection.
2210
2211 2010-12-02  Richard Guenther  <rguenther@suse.de>
2212
2213         PR tree-optimization/46723
2214         * tree-vect-loop.c (get_initial_def_for_induction): Strip
2215         conversions from the induction evolution and apply it to
2216         the result instead.
2217         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Handle
2218         assigns for induction defs.
2219
2220 2010-12-02  Richard Guenther  <rguenther@suse.de>
2221
2222         * value-prof.c (gimple_ic): Use stmt_ends_bb_p to detect
2223         the case we need to split the edge and not the block.
2224
2225 2010-12-02  Bernd Schmidt  <bernds@codesourcery.com>
2226
2227         DFA model for Core 2 and Core i7 scheduling.
2228
2229         * config/i386/core2.md: New DFA model for Core 2 and Core i7.
2230         * config/i386/i386.c (ix86_option_override_internal): Update entries
2231         for Core 2 and Core i7.
2232         (ix86_issue_rate): Set issue rate to 3 [be realistic].
2233         * config/i386/i386.md: Include "core2.md".
2234         (define_attr cpu): Add "corei7".
2235
2236 2010-12-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
2237
2238         Define tuning for Core 2 and Core i7.
2239
2240         * config/i386/i386-c.c (ix86_target_macros_internal): Update.
2241         * config/i386/i386.c (core2_cost): Delete, use generic costs instead.
2242         (m_CORE2): Replace with m_CORE2_{32,64}.
2243         (m_CORE2I7{,_32,_64}): New macros.
2244         (m_GENERIC32, m_GENERIC64): Update.
2245         (initial_ix86_tune_features, x86_accumulate_outgoing_args,)
2246         (x86_arch_always_fancy_math_387): Set m_CORE2I7_32 iff m_GENERIC32 and
2247         set m_CORE2I7_64 iff m_GENERIC64.
2248         (processor_target_table): Use generic costs for Core 2 and Core i7.
2249         (ix86_option_override_internal): Update entries for Core 2 and Core i7.
2250         (ix86_issue_rate): Remove entry for Core 2.
2251         (ia32_multipass_dfa_lookahead, ix86_sched_init_global): Update.
2252         * config/i386/i386.h (TARGET_CORE2_32, TARGET_CORE2_64): New macros.
2253         (TARGET_CORE2): Update.
2254         (PROCESSOR_CORE2_32, PROCESSOR_CORE2_64): New constants.
2255         (PROCESSOR_CORE2): Remove.
2256
2257 2010-12-02  Richard Guenther  <rguenther@suse.de>
2258
2259         * lto-streamer.h (LTO_major_version): Bump to 2.
2260
2261 2010-12-02  Richard Guenther  <rguenther@suse.de>
2262
2263         PR lto/44871
2264         * gimple.c (canonical_type_hash_cache): New hashtable.
2265         (gimple_type_hash): Make a wrapper around ...
2266         (gimple_type_hash_1): ... this.  Take gtc_mode argument.
2267         (gimple_canonical_type_hash): Likewise.
2268         (gtc_visit): Take a gtc_mode argument.
2269         (gimple_types_compatible_p_1): Likewise. Do not compare struct
2270         tag names or field names when computing canonical types.
2271         (gimple_types_compatible_p): Adjust.
2272         (visit): Take a gtc_mode argument.
2273         (iterative_hash_gimple_type): Likewise.  Do not hash struct tag
2274         names or field names when computing hashes of canonical types.
2275         (gimple_register_canonical_type): Use gimple_canonical_type_hash
2276         for the hash.
2277         (print_gimple_types_stats): Dump stats of canonical_type_hash_cache.
2278         (free_gimple_type_tables): Free canonical_type_hash_cache.
2279
2280 2010-12-02  Richard Guenther  <rguenther@suse.de>
2281             Ira Rosen  <irar@il.ibm.com>
2282
2283         PR tree-optimization/46663
2284         * tree-vect-patterns.c (vect_recog_pow_pattern): Check that
2285         FUNCTION_DECL exists and that it's a builtin.
2286
2287 2010-12-02  Jie Zhang  <jie@codesourcery.com>
2288
2289         PR middle-end/46674
2290         * varasm.c (compute_visible_aliases): Handle user set
2291         assembler name.
2292
2293 2010-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
2294
2295         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
2296         thinko regarding setting -mno-<xxx> debug switches.
2297         (rs6000_rtx_costs): Add FMA.  Delete old rtl based FMA costs.
2298
2299 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
2300
2301         * intl.c: Don't include tm.h.
2302         * Makefile.in (intl.o): Don't depend on $(TM_H).
2303
2304 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
2305
2306         * graphite-sese-to-poly.c (analyze_drs_in_stmts): Fix set but
2307         unused warning.
2308         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
2309
2310 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
2311
2312         * graphite-sese-to-poly.c (analyze_drs): Removed.
2313         (build_scop_drs): Do not call analyze_drs.
2314         (analyze_drs_in_stmts): New.
2315         (insert_stmts): New.
2316         (insert_out_of_ssa_copy): Call analyze_drs_in_stmts.
2317         (insert_out_of_ssa_copy_on_edge): Same.
2318         (rewrite_close_phi_out_of_ssa): Call insert_stmts.
2319         (rewrite_phi_out_of_ssa): Same.
2320         (rewrite_cross_bb_scalar_dependence): Same.
2321         (split_reduction_stmt): Move data references in the new basic blocks.
2322         (translate_scalar_reduction_to_array_for_stmt): Call insert_stmts.
2323
2324 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
2325
2326         * sese.c (rename_uses): Do not handle ADDR_EXPR in LHS of assignments.
2327
2328 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
2329
2330         PR middle-end/45297
2331         * graphite-poly.c (new_poly_bb): Returns a poly_bb_p.  Do not take
2332         the reduction bool in parameter.  Clear PBB_IS_REDUCTION.  Set GBB_PBB.
2333         * graphite-poly.h (new_poly_bb): Update declaration.
2334         (gbb_from_bb): Moved here...
2335         (pbb_from_bb): New.
2336         * graphite-sese-to-poly.c (var_used_in_not_loop_header_phi_node):
2337         Removed.
2338         (graphite_stmt_p): Removed.
2339         (try_generate_gimple_bb): Returns a gimple_bb_p.  Do not pass in
2340         sbitmap reductions.  Always build a gimple_bb_p.  Do not call
2341         new_poly_bb.
2342         (build_scop_bbs_1): Do not pass in sbitmap reductions.
2343         (build_scop_bbs): Same.
2344         (gbb_from_bb): ... from here.
2345         (add_conditions_to_constraints): Moved up.
2346         (analyze_drs): New.
2347         (build_scop_drs): Call analyze_drs.  Remove all the PBBs that do
2348         not contain data references.
2349         (new_pbb_from_pbb): New.
2350         (insert_out_of_ssa_copy_on_edge): Call new_pbb_from_pbb after a
2351         block is split.
2352         (rewrite_close_phi_out_of_ssa): Update call to
2353         insert_out_of_ssa_copy_on_edge.
2354         (rewrite_reductions_out_of_ssa): Now static.
2355         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
2356         (split_pbb): New.
2357         (split_reduction_stmt): Call split_pbb.
2358         (translate_scalar_reduction_to_array): Pass in the scop, do not
2359         pass in the sbitmap reductions.
2360         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
2361         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
2362         (rewrite_commutative_reductions_out_of_ssa): Same.
2363         (build_poly_scop): Call build_scop_bbs,
2364         rewrite_commutative_reductions_out_of_ssa,
2365         rewrite_reductions_out_of_ssa, and
2366         rewrite_cross_bb_scalar_deps_out_of_ssa.  Move build_scop_drs
2367         before scop_to_lst.
2368         * graphite-sese-to-poly.h (rewrite_commutative_reductions_out_of_ssa):
2369         Removed declaration.
2370         (rewrite_reductions_out_of_ssa): Same.
2371         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
2372         (build_scop_bbs): Same.
2373         * graphite.c (graphite_transform_loops): Do not initialize reductions.
2374         Do not call build_scop_bbs,
2375         rewrite_commutative_reductions_out_of_ssa,
2376         rewrite_reductions_out_of_ssa, and
2377         rewrite_cross_bb_scalar_deps_out_of_ssa.
2378         * sese.h (struct gimple_bb): Add field pbb.
2379         (GBB_PBB): New.
2380
2381 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
2382
2383         * graphite-sese-to-poly.c (handle_scalar_deps_crossing_scop_limits):
2384         New.
2385         (rewrite_cross_bb_scalar_deps): Pass in the scop.  Call
2386         handle_scalar_deps_crossing_scop_limits.
2387         (rewrite_cross_bb_scalar_deps_out_of_ssa): Create an empty BB
2388         after the scop.  Update call to rewrite_cross_bb_scalar_deps.
2389
2390 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
2391
2392         * sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr
2393         when replacing a constant in an ADDR_EXPR.
2394
2395 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
2396
2397         * graphite-blocking.c (lst_do_strip_mine_loop): Extra parameter
2398         for the stride.
2399         (lst_do_strip_mine): Same.
2400         (scop_do_strip_mine): Same.
2401         * graphite-poly.c (apply_poly_transforms): Update call to
2402         scop_do_strip_mine.
2403         * graphite-poly.h (scop_do_strip_mine): Update declaration.
2404
2405 2010-12-01  Jan Hubicka  <jh@suse.cz>
2406
2407         * tree.c (build_common_builtin_nodes): Do not initialize
2408         BUILT_IN_PROFILE_FUNC_ENTER and BUILT_IN_PROFILE_FUNC_EXIT.
2409         * builtins.c (expand_builtin_profile_func): Remove.
2410         (expand_builtin): Do not handle BUILT_IN_PROFILE_FUNC_ENTER and
2411         BUILT_IN_PROFILE_FUNC_EXIT.
2412         * builtins.def (profile_func_enter, profile_func_exit): Remove stubs.
2413         (__cyg_profile_func_enter, __cyg_profile_func_exit): New.
2414         * gimplify.c (gimplify_function_tree): Reorganize code calling
2415         profiling functions.
2416
2417 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
2418
2419         * opts.c: Expand comment on tm.h include.
2420
2421 2010-12-01  Yao Qi  <yao@codesourcery.com>
2422
2423         * config/arm/predicates.md ("vfp_register_operand"): Return true for
2424         VFP_D0_D7_REGS classes.
2425
2426 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
2427
2428         * common.opt (flag_stack_check): New Variable entry.
2429         (fcompare-debug-second): Use Var.
2430         * flags.h (flag_compare_debug, flag_stack_check): Remove.
2431         * opts.c (flag_compare_debug): Remove.
2432         (common_handle_option): Don't handle OPT_fcompare_debug_second.
2433         Set opts->x_flag_stack_check for OPT_fstack_check_.
2434         * toplev.c (flag_stack_check): Remove.
2435
2436 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
2437
2438         * common.opt (main_input_filename, main_input_basename,
2439         main_input_baselength): New Variable entries.  From toplev.c.
2440         * final.c (output_quoted_string): Move from toplev.c.
2441         * output.h (output_quoted_string): Move from toplev.h.
2442         * opts-global.c (read_cmdline_options): Use gcc_options pointer to
2443         access main_input_filename, main_input_baselength and
2444         main_input_basename.
2445         * targhooks.c: Include intl.h and opts.h.
2446         (option_affects_pch_p, default_get_pch_validity): Move from
2447         toplev.c.
2448         * targhooks.h (option_affects_pch_p, default_get_pch_validity):
2449         Move from toplev.h.
2450         * toplev.c (main_input_filename, main_input_basename,
2451         main_input_baselength): Move to common.opt.
2452         (output_quoted_string): Move to final.c.
2453         (warn_deprecated_use): Move to tree.c.
2454         (option_affects_pch_p, default_get_pch_validity,
2455         pch_option_mismatch, default_pch_valid_p): Move to targhooks.c.
2456         * toplev.h (skip_leading_substring): Move to tree-dump.c.
2457         (warn_deprecated_use): Move to tree.h.
2458         (output_quoted_string): Move to output.h.
2459         (main_input_filename, main_input_basename, main_input_baselength):
2460         Move to common.opt.
2461         (default_get_pch_validity, default_pch_valid_p): Move to
2462         targhooks.c.
2463         * tree-dump.c (skip_leading_substring): Move from toplev.h.
2464         * tree.c (warn_deprecated_use): Move from toplev.c.
2465         * tree.h (warn_deprecated_use): Move from toplev.h.
2466         * c-typeck.c, config/alpha/alpha.c, config/arc/arc.c,
2467         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
2468         config/cris/cris.c, config/crx/crx.c, config/fr30/fr30.c,
2469         config/frv/frv.c, config/h8300/h8300.c, config/ia64/ia64.c,
2470         config/iq2000/iq2000.c, config/lm32/lm32.c, config/m32c/m32c.c,
2471         config/m32r/m32r.c, config/m68hc11/m68hc11.c, config/m68k/m68k.c,
2472         config/mcore/mcore.c, config/mep/mep.c,
2473         config/microblaze/microblaze.c, config/mips/mips.c,
2474         config/mmix/mmix.c, config/mn10300/mn10300.c,
2475         config/moxie/moxie.c, config/pa/pa.c, config/pdp11/pdp11.c,
2476         config/picochip/picochip.c, config/s390/s390.c,
2477         config/score/score.c, config/sh/sh.c, config/sparc/sparc.c,
2478         config/spu/spu.c, config/stormy16/stormy16.c, config/v850/v850.c,
2479         config/vax/vax.c, config/xtensa/xtensa.c, gimple-low.c,
2480         graphite-sese-to-poly.c, plugin.c, tree-cfg.c, tree-inline.c,
2481         varasm.c, xcoffout.c: Don't include toplev.h.
2482         * Makefile.in (c-typeck.o, tree-inline.o, tree-cfg.o,
2483         gimple-low.o, graphite-sese-to-poly.o, targhooks.o, plugin.o,
2484         varasm.o, xcoffout.o): Update dependencies.
2485         * config/arm/t-arm (arm.o): Update dependencies.
2486         * config/spu/t-spu-elf (spu.o): Update dependencies.
2487
2488 2010-12-01  Richard Guenther  <rguenther@suse.de>
2489
2490         PR tree-optimization/46730
2491         * value-prof.c (gimple_ic): Always generate a separate merge BB.
2492
2493 2010-11-30  Ian Lance Taylor  <iant@google.com>
2494
2495         * config/i386/linux.h (ASM_SPEC): Pass -v as -v, not -V.  Remove
2496         all of %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}.
2497         * config/i386/linux64.h (ASM_SPEC): Likewise.
2498         * config/i386/mingw-w64.h (ASM_SPEC): Likewise.
2499         * config/i386/sol2-10.h (ASM_SPEC) [USE_GAS]: Likewise.
2500         * config/i386/vxworks.h (ASM_SPEC): Likewise.
2501         * config/i386/x86-64.h (ASM_SPEC): Likewise.
2502         * config/i386/sol2.h (ASM_SPEC): Remove %{Wa,*:%*}.
2503         * config/i386/sol2-10.h (ASM_SPEC) [!USE_GAS]: Likewise.
2504
2505 2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>
2506
2507         * c-decl.c (finish_function): Call objc_finish_function in
2508         Objective-C.
2509         * c-typeck.c (convert_for_assignment): Do not call
2510         objc_type_quals_match().
2511
2512 2010-11-30  Richard Guenther  <rguenther@suse.de>
2513
2514         PR tree-optimization/46722
2515         * tree-ssa-math-opts.c (convert_mult_to_fma): Get multiplication
2516         operands as arguments.
2517         (execute_optimize_widening_mul): Also handle power of two as
2518         multiplication.
2519
2520 2010-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
2521
2522         PR middle-end/46709
2523         * cgraphunit.c (process_function_and_variable_attributes): Fix
2524         cut'n'pasteo.
2525
2526 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
2527
2528         * hwint.c:  New.  Extracted from toplev.c.
2529         * hwint.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
2530         Move from toplev.h.
2531         * toplev.c (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
2532         Move to hwint.c.
2533         * toplev.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
2534         Move to hwint.h.
2535         * builtins.c, combine.c, config/i386/winnt.c, double-int.c,
2536         explow.c, expmed.c, fold-const.c, ggc-page.c, ggc-zone.c, ifcvt.c,
2537         ipa-struct-reorg.c, ira-color.c, matrix-reorg.c, omp-low.c,
2538         real.c, recog.c, reload.c, rtlanal.c, simplify-rtx.c,
2539         stor-layout.c, tree-dfa.c, tree-ssa-alias.c,
2540         tree-ssa-loop-niter.c, tree-vect-data-refs.c,
2541         tree-vect-loop-manip.c, tree-vect-loop.c, tree-vect-stmts.c,
2542         tree-vrp.c: Don't include toplev.h.
2543         * genattrtab.c, genconditions.c, genemit.c, genextract.c,
2544         genoutput.c, genpeep.c, genpreds.c, genrecog.c: Don't include
2545         toplev.h in generated output.
2546         * Makefile.in (OBJS-common): Add hwint.o.
2547         Dependencies for above files changed to remove toplev.h.
2548         (hwint.o): New.
2549         (insn-attrtab.o, insn-emit.o, insn-extract.o, insn-output.o,
2550         insn-peep.o, insn-preds.o, insn-recog.o): Don't depend on
2551         toplev.h.
2552         * config/i386/t-cygming (winnt.o): Don't depend on toplev.h.
2553         * config/i386/t-interix (winnt.o): Don't depend on toplev.h.
2554
2555 2010-11-30  Richard Guenther  <rguenther@suse.de>
2556
2557         PR tree-optimization/46717
2558         * value-prof.c (gimple_ic): Preserve EH edges of the indirect
2559         call.  Manually create EH edges for the direct call and update
2560         target PHI nodes.
2561
2562 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
2563
2564         * diagnostic-core.h: Include bversion.h.
2565         * toplev.h: Don't include input.h or bversion.h.
2566         (parse_optimize_options): Don't declare here.
2567         * alias.c, auto-inc-dec.c, c-aux-info.c, c-convert.c, c-parser.c,
2568         caller-save.c, cfg.c, cfganal.c, cfgbuild.c, cfgcleanup.c,
2569         combine-stack-adj.c, config/arm/pe.c, config/darwin-c.c,
2570         config/host-darwin.c, config/i386/host-cygwin.c,
2571         config/i386/host-mingw32.c, config/i386/msformat-c.c,
2572         config/i386/netware.c, config/i386/nwld.c,
2573         config/i386/winnt-cxx.c, config/i386/winnt-stubs.c,
2574         config/ia64/ia64-c.c, config/m32c/m32c-pragma.c,
2575         config/mep/mep-pragma.c, config/microblaze/microblaze-c.c,
2576         config/rs6000/host-darwin.c, config/rs6000/rs6000-c.c,
2577         config/score/score3.c, config/score/score7.c,
2578         config/sh/symbian-base.c, config/sh/symbian-c.c,
2579         config/sh/symbian-cxx.c, config/sol2-c.c, config/sol2.c,
2580         config/v850/v850-c.c, config/vxworks.c, convert.c, cppbuiltin.c,
2581         cselib.c, dbgcnt.c, ddg.c, dfp.c, dominance.c, emit-rtl.c,
2582         fixed-value.c, fwprop.c, ggc-common.c, gimple.c, gimplify.c,
2583         graphite-blocking.c, graphite-clast-to-gimple.c,
2584         graphite-dependences.c, graphite-flattening.c,
2585         graphite-interchange.c, graphite-poly.c,
2586         graphite-scop-detection.c, graphite.c, haifa-sched.c,
2587         implicit-zee.c, integrate.c, ipa-pure-const.c, ipa-reference.c,
2588         ira-build.c, ira-conflicts.c, ira-costs.c, ira-lives.c, jump.c,
2589         lists.c, loop-doloop.c, loop-iv.c, lto-cgraph.c, lto-compress.c,
2590         lto-opts.c, lto-section-in.c, lto-section-out.c,
2591         lto-streamer-out.c, lto-symtab.c, modulo-sched.c, optabs.c,
2592         params.c, postreload-gcse.c, postreload.c, predict.c, profile.c,
2593         regcprop.c, reginfo.c, regmove.c, reorg.c, resource.c,
2594         sched-deps.c, sched-ebb.c, sched-rgn.c, sdbout.c,
2595         sel-sched-dump.c, sel-sched-ir.c, sese.c, stmt.c, targhooks.c,
2596         tree-cfgcleanup.c, tree-mudflap.c, tree-nomudflap.c,
2597         tree-object-size.c, tree-outof-ssa.c, tree-phinodes.c,
2598         tree-profile.c, tree-sra.c, tree-ssa-ccp.c, tree-ssa-coalesce.c,
2599         tree-ssa-live.c, tree-ssa-loop-prefetch.c, tree-ssa-loop.c,
2600         tree-ssa-operands.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
2601         tree-vect-patterns.c, value-prof.c, var-tracking.c, web.c: Don't
2602         include toplev.h.
2603         * Makefile.in (TOPLEV_H): Remove.  All uses changed to use
2604         toplev.h.  Dependencies for above files and c-family files changed
2605         to remove $(TOPLEV_H) or toplev.h.
2606         (C_TREE_H): Don't include $(TOPLEV_H).
2607         (DIAGNOSTIC_CORE_H): Use $(INPUT_H) instead of input.h.  Add
2608         bversion.h.
2609         * config/arm/t-pe, config/arm/t-wince-pe, config/i386/t-cygming,
2610         config/ia64/t-ia64, config/mep/t-mep, config/score/t-score-elf,
2611         config/t-darwin, config/t-sol2,
2612         config/t-vxworks, config/v850/t-v850, config/v850/t-v850e:
2613         Dependencies for above files changed to remove $(TOPLEV_H) or
2614         toplev.h.
2615
2616 2010-11-30  Richard Guenther  <rguenther@suse.de>
2617
2618         PR lto/44986
2619         * gcc.c (main): Use the first input with a compiler as infile
2620         for link spec processing.
2621
2622 2010-11-30  Richard Guenther  <rguenther@suse.de>
2623
2624         PR lto/45949
2625         * cgraphunit.c (ipa_passes): Stop after errors from
2626         small IPA passes.
2627
2628 2010-11-30  Mingjie Xing  <mingjie.xing@gmail.com>
2629
2630         * gcc-plugin.h: Include coretypes.h.
2631         * Makefile.in (FUNCTION_H): Add hard-reg-set.h.
2632
2633 2010-11-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2634
2635         * ggc-zone.c (ggc_pch_read): Fix conditional compilation.
2636         * ggc-none.c (ggc_internal_alloc_zone_stat)
2637         (ggc_internal_cleared_alloc_zone_stat): New.
2638
2639 2010-11-29  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
2640
2641         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Check
2642         TARGET_SINGLE_PIC_BASE for RS6000_PIC_OFFSET_TABLE_REGNUM.
2643         (rs6000_emit_prologue): Don't set PIC register if
2644         TARGET_SINGLE_PIC_BASE.
2645         * config/rs6000/rs6000.opt (msingle-pic-base): New option.
2646         * doc/invoke.texi (msingle-pic-base): Document.
2647
2648 2010-11-29  H.J. Lu  <hongjiu.lu@intel.com>
2649
2650         PR driver/46712
2651         * exec-tool.in (id): New.
2652         Check and export LT_RCU_$id instead of LT_RCU.
2653
2654 2010-11-29  Zdenek Dvorak  <rakdver@kam.uniff.cz>
2655
2656         PR tree-optimization/46675
2657         * tree-ssa-loop-niter.c (split_to_var_and_offset): Avoid overflow
2658         in offset calculation.
2659
2660 2010-11-29  Jan Hubicka  <jh@suse.cz>
2661
2662         * collect2.c (main): Do not imply verbose output with
2663         LTO and linker plugin.
2664
2665 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
2666
2667         * dwarf2out.c (print_die): Print the address of the current DIE or
2668         of any DIE referenced by the current one.
2669
2670 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
2671
2672         PR debug/46101
2673         * dwarf2out.c (lookup_type_die_strip_naming_typedef): New
2674         function.
2675         (scope_die_for, gen_type_die_for_member): Replace uses of
2676         lookup_type_die with use of lookup_type_die_strip_naming_typedef.
2677
2678 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
2679
2680         * config/darwin.c (darwin_mergeable_string_section): Remove blank line.
2681         (darwin_asm_declare_object_name): Correct spelling.
2682         (darwin_output_aligned_bss): Likewise.
2683
2684 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
2685             Mike Stump  <mrs@gcc.gnu.org>
2686
2687         PR target/26427
2688         PR target/33120
2689         PR testsuite/35710
2690         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Remove
2691         (ASM_OUTPUT_LOCAL): Likewise.
2692         * config/darwin-protos.h (darwin_asm_declare_object_name): New.
2693         (darwin_output_aligned_bss): Likewise.
2694         (darwin_asm_output_aligned_decl_local): Likewise.
2695         (darwin_asm_output_aligned_decl_common): Likewise.
2696         (darwin_use_anchors_for_symbol_p): Likewise.
2697         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Remove.
2698         (TARGET_ASM_OUTPUT_ANCHOR): Define.
2699         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
2700         (DARWIN_SECTION_ANCHORS): Set to 1.
2701         * config/darwin.c (emit_aligned_common): New var.
2702         (darwin_init_sections): Check that the Darwin private zero-size section
2703         marker is in range.
2704         (darwin_text_section): Check for zero-sized objects.
2705         (darwin_mergeable_string_section): Likewise.
2706         (darwin_mergeable_constant_section): Likewise.
2707         (machopic_select_section): Adjust to check for zero-sized objects.
2708         Assert that OBJC meta data are non-zero sized.
2709         (darwin_asm_declare_object_name): New.
2710         (darwin_asm_declare_constant_name): Adjust for zero-sized
2711         object sections.
2712         (BYTES_ZFILL): Define.
2713         (darwin_emit_weak_or_comdat): New.
2714         (darwin_emit_local_bss): New.
2715         (darwin_emit_common): New.
2716         (darwin_output_aligned_bss): New.
2717         (darwin_asm_output_aligned_decl_common): New.
2718         (darwin_asm_output_aligned_decl_local): New.
2719         (darwin_file_end): Disable subsections_via_symbols when section
2720         anchoring is active.
2721         (darwin_asm_output_anchor): Re-enable.
2722         (darwin_use_anchors_for_symbol_p): New.
2723         (darwin_override_options): Check for versions that can emit
2724         aligned common.  Update usage of flags to current.
2725         * config/darwin-sections.def: Update comments and flags for
2726         non-anchor sections.  zobj_const_section, zobj_data_section,
2727         zobj_bss_section, zobj_const_data_section: New.
2728         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Redefine.
2729         (ASM_OUTPUT_ALIGN): Make whitespace output consistent.
2730         (L2_MAX_OFILE_ALIGNMENT): Define.
2731         (ASM_OUTPUT_ALIGNED_BSS): Define.
2732         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
2733         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
2734         (SECTION_NO_ANCHOR): Define.
2735         (TARGET_ASM_OUTPUT_ANCHOR) Define with a default of NULL.
2736         (DARWIN_SECTION_ANCHORS): Define with a default of 0.
2737
2738 2010-11-29  Joseph Myers  <joseph@codesourcery.com>
2739
2740         * system.h: Include "safe-ctype.h" instead of <safe-ctype.h>.
2741         Include <signal.h>, <sys/mman.h>, <sys/resource.h> and <sys/times.h>.
2742         (O_BINARY, SIGCHLD, MAP_FAILED, MAP_ANONYMOUS, kill):
2743         Conditionally define.
2744         (GET_ENVIRONMENT): Poison.
2745         * configure.ac: Don't test for mincore.
2746         * configure: Regenerate.
2747         * config.in: Regenerate.
2748         * collect2-aix.c: Don't include <sys/mman.h>.
2749         * collect2.c: Don't include <signal.h>.
2750         (SIGCHLD): Don't define.
2751         (prefix_from_env): Use getenv instead of GET_ENVIRONMENT.
2752         * config/alpha/alpha.c: Include "splay-tree.h" instead of
2753         <splay-tree.h>.
2754         * config/arm/arm.c (arm_target_help): Use getenv instead of
2755         GET_ENVIRONMENT.
2756         * config/avr/driver-avr.c: Don't include <stdlib.h>.
2757         * config/frv/frv.c: Don't include <ctype.h>.
2758         * config/host-darwin.c: Don't include <sys/mman.h>.
2759         * config/host-hpux.c: Don't include <sys/mman.h> or <unistd.h>.
2760         (MAP_FAILED): Don't define.
2761         * config/host-linux.c: Don't include <sys/mman.h> or <limits.h>.
2762         * config/host-solaris.c: Don't include <sys/mman.h>.
2763         * config/i386/cygming.h: Don't include <stdio.h>.
2764         * config/i386/driver-i386.c: Don't include <stdlib.h>.
2765         * config/i386/host-cygwin.c: Don't include <sys/mman.h>.
2766         * config/iq2000/iq2000.c: Don't include <signal.h>.
2767         * config/m32c/m32c-pragma.c: Don't include <stdio.h>.
2768         * config/m68hc11/m68hc11.c: Don't include <stdio.h>.
2769         * config/mep/mep-pragma.c: Don't include <stdio.h>.
2770         * config/microblaze/microblaze.c: Don't include <signal.h>.
2771         * config/mips/mips.c: Don't include <signal.h>.
2772         * config/rs6000/host-darwin.c: Don't include <signal.h>.
2773         * cppdefault.c (cpp_relocated): Use getenv instead of GET_ENVIRONMENT.
2774         * defaults.h (GET_ENVIRONMENT): Don't define.
2775         * et-forest.h: Don't include <ansidecl.h> or <stddef.h>.
2776         * gcc.c: Don't include <signal.h>, <sys/mman.h> or <sys/types.h>.
2777         (SIGCHLD, MAP_FAILED, kill): Don't define.
2778         (process_command): Use getenv instead of GET_ENVIRONMENT.
2779         * genhooks.c: Don't include <string.h>.
2780         * ggc-common.c: Don't include <sys/resource.h>, <sys/mman.h> or
2781         <sys/types.h>.
2782         (MAP_FAILED): Don't define.
2783         * ggc-page.c Don't include <sys/mman.h>.
2784         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
2785         * ggc-zone.c: Don't include <sys/mman.h>.
2786         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
2787         * graph.c: Include "config.h" instead of <config.h>.
2788         * incpath.c (add_env_var_paths): Use getenv instead of GET_ENVIRONMENT.
2789         * lto-wrapper.c: Don't include <errno.h>, <signal.h> or "libiberty.h".
2790         (SIGCHLD, kill): Don't define.
2791         * mips-tfile.c: Don't include <signal.h>.
2792         * opts.c: Don't include <signal.h> or <sys/resource.h>.
2793         (print_specific_help): Use getenv instead of GET_ENVIRONMENT.
2794         * passes.c: Don't include <signal.h>, <sys/resource.h> or
2795         <sys/times.h>.
2796         * sparseset.h: Don't include <assert.h>.
2797         * timevar.c: Don't include <sys/times.h> or <sys/resource.h>.
2798         * tlink.c: Don't include "libiberty.h".
2799         * toplev.c: Don't include <signal.h> or <sys/times.h>.
2800         * tree-mudflap.c: Include "demangle.h" instead of <demangle.h>.
2801         * tree-switch-conversion.c: Don't include <signal.h>.
2802         * vmsdbgout.c: Don't include <errno.h> or <string.h>.
2803
2804 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
2805
2806         * c-parser.c (c_parser_objc_try_catch_statement): Renamed to
2807         c_parser_objc_try_catch_finally_statement for consistency with the
2808         C++ parser.  Parse @catch(...) and pass NULL_TREE to
2809         objc_begin_catch_clause() in that case.  Improved error recovery.
2810         Reorganized code to be almost identical to
2811         cp_parser_objc_try_catch_finally_statement.
2812
2813 2010-11-29  Joern Rennecke  <amylaar@spamcop.net>
2814
2815         PR tree-optimization/46621
2816         * gimple.h: Don't include tm.h or hard-reg-set.h .
2817         * Makefile.in (GIMPLE_H): Remove $(TM_H).
2818
2819         PR bootstrap/44756
2820         * cppbuiltin.c: Include target.h .
2821         (define_builtin_macros_for_type_sizes):
2822         Use targetm.float_words_big_endian.
2823
2824 2010-11-27  Jan Hubicka  <jh@suse.cz>
2825
2826         * dwarf2out.c (dwarf2out_begin_function): Set cold_text_section
2827         and output cold_text_section_label.
2828         (dwarf2out_init): Don't do that there.
2829         (dwarf2out_finish): Handle cold section end label only if cold
2830         section was used.
2831
2832 2010-11-27  Eric Botcazou  <ebotcazou@adacore.com>
2833
2834         * tree-nested.c (remap_vla_decls): Fully expand value expressions of
2835         VLA variables.
2836
2837 2010-11-27  Richard Guenther  <rguenther@suse.de>
2838
2839         * gimple.c (gimple_assign_copy_p): Use gimple_assign_single_p.
2840         (gimple_assign_ssa_name_copy_p): Likewise.
2841         (gimple_assign_unary_nop_p): Use is_gimple_assign.
2842         (is_gimple_cast): Remove.
2843         (gimple_assign_single_p): Move ...
2844         * gimple.h (gimple_assign_single_p): ... here.
2845         (is_gimple_cast): Remove.
2846         (gimple_assign_rhs_code): Simplify.
2847         * gimple-fold.c (gimple_fold_builtin): Use CONVERT_EXPR_P
2848         instead of is_gimple_cast.
2849         * ipa-type-escape.c (look_for_casts): Likewise.
2850
2851 2010-11-26  Joseph Myers  <joseph@codesourcery.com>
2852
2853         * doc/options.texi (Enum, EnumValue): Document new record types.
2854         (Enum): Document new option flag.
2855         * opt-functions.awk
2856         * optc-gen.awk: Handle enumerated option arguments.
2857         * opth-gen.awk: Handle enumerated option arguments.
2858         * opts-common.c (enum_arg_ok_for_language, enum_arg_to_value,
2859         enum_value_to_arg): New.
2860         (decode_cmdline_option): Handle enumerated arguments.
2861         (read_cmdline_option): Handle CL_ERR_ENUM_ARG.
2862         (set_option, option_enabled, get_option_state): Handle CLVC_ENUM.
2863         * opts.c (print_filtered_help, print_specific_help): Take
2864         lang_mask arguments.
2865         (print_filtered_help): Handle printing values of enumerated
2866         options.  Print possible arguments for enumerated options.
2867         (print_specific_help): Update call to print_filtered_help.
2868         (common_handle_option): Update calls to print_specific_help.  Use
2869         value rather than arg for OPT_fdiagnostics_show_location_.  Don't
2870         handle OPT_ffp_contract_, OPT_fexcess_precision_,
2871         OPT_fvisibility_, OPT_ftls_model_, OPT_fira_algorithm_ or
2872         OPT_fira_region_ here.
2873         * opts.h (enum cl_var_type): Add CLVC_ENUM.
2874         (struct cl_option): Add var_enum.
2875         (CL_ENUM_CANONICAL, CL_ENUM_DRIVER_ONLY, struct cl_enum_arg,
2876         struct cl_enum, cl_enums, cl_enums_count): New.
2877         (CL_ERR_ENUM_ARG): Define.
2878         (CL_ERR_NEGATIVE): Update value.
2879         (enum_value_to_arg): Declare.
2880         * common.opt (flag_ira_algorithm, flag_ira_region,
2881         flag_fp_contract_mode, flag_excess_precision_cmdline,
2882         default_visibility, flag_tls_default): Remove Variable entries.
2883         (help_enum_printed): New Variable.
2884         (fdiagnostics-show-location=): Use Enum.  Add associated
2885         SourceInclude, Enum and EnumValue entries.
2886         (fexcess-precision=, ffp-contract=, fira-algorithm=, fira-region=,
2887         ftls-model=, fvisibility=): Use Enum, Var and Init.  Add
2888         associated Enum and EnumValue entries.
2889
2890 2010-11-26  Joern Rennecke  <amylaar@spamcop.net>
2891
2892         PR target/46623
2893         * config/microblaze/microblaze.c (microblaze_block_move_straight):
2894         Use XALLOCAVEC.
2895         (microblaze_option_override): Don't use C++ style comments.
2896         (save_restore_insns): Remove unused variable base_offset.
2897         (microblaze_expand_prologue): Remove unused variable insn.
2898         (microblaze_secondary_reload): Adjust type to match target.h .
2899         (microblaze_elf_in_small_data_p): Move declarations to start of block.
2900         (microblaze_expand_move): Likewise.
2901         * config/microblaze/microblaze.h (LARGE_INT):
2902         Avoid signed / unsigned comparisons.
2903         (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
2904         (ASM_FORMAT_PRIVATE_NAME): Make format specifier match printed data.
2905         (ASM_FINISH_DECLARE_OBJECT): Likewise.  Constify name.
2906
2907 2010-11-26  Michael Matz  <matz@suse.de>
2908
2909         * tree-ssa-copy.c (fini_copy_prop): Don't DCE when we have loops.
2910
2911         * passes.c (init_optimization_passes): Remove superfluous
2912         copy-prop pass.
2913
2914 2010-11-26  Richard Guenther  <rguenther@suse.de>
2915
2916         PR lto/46648
2917         * gimple.c (gtc_visit): Do not return true for members of an
2918         SCC still being processed but the current lattice value of
2919         the member.  Treat SCC members comparison state as lattice,
2920         starting at equal, eventually dropping to unequal.
2921         (gimple_types_compatible_p_1): Likewise.
2922
2923 2010-11-26  Richard Guenther  <rguenther@suse.de>
2924
2925         PR middle-end/46559
2926         * dwarf2out.c (dwarf2out_finish): Use comp_unit_die as root
2927         for location list processing.
2928
2929 2010-11-26  Richard Guenther  <rguenther@suse.de>
2930
2931         PR lto/46560
2932         * cgraph.c (cgraph_clone_edge): Clone call_stmt dependent
2933         flags manually.
2934
2935 2010-11-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2936
2937         * config/s390/s390.c (print_operand_address): Replace assert with
2938         error message.
2939         (print_operand): Replace assertions, gcc_unreachable and
2940         fatal_insn with error messages.
2941
2942 2010-11-26  Richard Guenther  <rguenther@suse.de>
2943
2944         PR tree-optimization/46665
2945         * tree-ssa-structalias.c (pt_solution_set_var): Use DECL_PT_UID.
2946
2947 2010-11-26  Ian Bolton  <ian.bolton@arm.com>
2948
2949         * config/arm/arm.c (arm_option_override): enable loop array
2950         prefetching at -O3 for suitable targets, and configure params.
2951         * config/arm/arm-protos.h (struct tune_params): Add fields for
2952         configuring loop array prefetching.
2953
2954 2010-11-26  Christian Borntraeger  <borntraeger@de.ibm.com>
2955
2956         * config/s390/2817.md (z196_crack): Add z196_g3 as possible slot.
2957
2958 2010-11-26  Richard Guenther  <rguenther@suse.de>
2959
2960         PR tree-optimization/46664
2961         * tree-affine.c (aff_combination_to_tree): Add rest last.
2962
2963 2010-11-26  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
2964
2965         PR target/33637
2966         * configure.ac: Accept extra arguments for AS_FOR_TARGET,
2967         LD_FOR_TARGET, NM_FOR_TARGET, OBJDUMP_FOR_TARGET.
2968         * configure: Regenerated.
2969         * exec-tool.in: Not quoting command, may have extra arguments.
2970
2971 2010-11-26  Richard Guenther  <rguenther@suse.de>
2972
2973         PR tree-optimization/46528
2974         PR debug/46338
2975         * profile.c (branch_prob): Do not split blocks based on locations
2976         from debug statements.
2977
2978 2010-11-26  Jakub Jelinek  <jakub@redhat.com>
2979
2980         PR middle-end/46647
2981         * builtins.c (fold_builtin_memset): Check c is INTEGER_CST instead
2982         of host_integerp check.  Use TREE_INT_CST_LOW instead of tree_low_cst.
2983
2984         PR bootstrap/45700
2985         * tree.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
2986         build4_stat_loc, build5_stat_loc, build6_stat_loc): New inlines.
2987         (build1_loc, build2_loc, build3_loc, build4_loc, build5_loc,
2988         build6_loc): Define.
2989         * fold-const.c (protected_set_expr_location_unshare): New inline.
2990         (fold_convert_loc, pedantic_non_lvalue_loc): Use it.
2991         (negate_expr, associate_trees, non_lvalue_loc, omit_one_operand_loc,
2992         pedantic_omit_one_operand_loc, omit_two_operands_loc,
2993         fold_truth_not_expr, invert_truthvalue_loc, make_bit_field_ref,
2994         optimize_bit_field_compare, make_range, fold_range_test, fold_truthop,
2995         build_fold_addr_expr_with_type_loc, fold_unary_loc, fold_binary_loc,
2996         fold_indirect_ref_1, build_fold_indirect_ref_loc): Use builN_loc
2997         instead of buildN followed by SET_EXPR_LOCATION or
2998         protected_set_expr_location.
2999         (fold_build1_stat_loc, fold_build2_stat_loc, fold_build3_stat_loc):
3000         Use buildN_stat_loc instead of buildN_stat followed by
3001         SET_EXPR_LOCATION.
3002
3003 2010-11-26  Basile Starynkevitch  <basile@starynkevitch.net>
3004
3005         * Makefile.in (s-tm-texi): Remove spurous tab.
3006
3007 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
3008
3009         PR debug/46258
3010         * tree-cfg.c (replace_uses_by): Don't mark BBs as altered on
3011         debug stmts.
3012
3013 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
3014
3015         * toplev.c (finalize): Add no_backend parameter.  Don't finish
3016         passes when preprocessing only.  Adjust...
3017         (do_compile): ... caller.
3018
3019 2010-11-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3020
3021         * config/pa/pa.md (negdf2): Condition on !flag_signed_zeros instead of
3022         flag_unsafe_math_optimizations.
3023         (negsf2): Likewise.
3024         Move fnegabs related patterns together.  Only use fmpynfadd instruction
3025         to negate a multiply if !flag_signed_zeros is true.
3026
3027 2010-11-25  Uros Bizjak  <ubizjak@gmail.com>
3028
3029         * gengtype-state.c (read_state_structures): Initialize "previous".
3030
3031 2010-11-25  Basile Starynkevitch  <basile@starynkevitch.net>
3032             Jeremie Salvucci  <jeremie.salvucci@free.fr>
3033
3034         * gengtype-state.c: Add new file.
3035
3036         * gengtype.c (type count): New variable.
3037         (new_structure, find_param_structure, create_pointer)
3038         (create_array): Use it to set state_number in types.
3039         (dump_everything): Improve comment.
3040         (main): Call read_state and write_state. Print type_count.
3041
3042         * gengtype.h (type_lineloc): New function.
3043         (read_state, write_state): New declarations.
3044
3045         * Makefile.in (GENGTYPE_FLAGS): New variable.
3046         (s-gtype): Run gengtype twice and generate gtype.state.
3047         (build/gengtype-state.o): New rule.
3048         (build/gengtype$(build_exeext)): Link gengtype-state.o.
3049         (mostlyclean): Update comment.  Remove gtype.state.
3050
3051 2010-11-25  Jakub Jelinek  <jakub@redhat.com>
3052
3053         PR middle-end/46637
3054         * combine.c (try_combine): When substing i2dest for i2src, pass
3055         1 as last argument even if
3056         i0_feeds_i1_n && i1_feeds_i2_n && i0dest_in_i0src.
3057
3058 2010-11-25  H.J. Lu  <hongjiu.lu@intel.com>
3059
3060         PR middle-end/46647
3061         * builtins.c (target_char_cast): Check INTEGER_CST instead of
3062         host_integerp.  Replace tree_low_cst with TREE_INT_CST_LOW.
3063
3064 2010-11-25  Joseph Myers  <joseph@codesourcery.com>
3065
3066         * target.def (supports_split_stack, except_unwind_info): Take
3067         gcc_options parameters.
3068         * targhooks.c (default_except_unwind_info,
3069         dwarf2_except_unwind_info, sjlj_except_unwind_info): Take
3070         gcc_options parameters.
3071         * targhooks.h (default_except_unwind_info,
3072         dwarf2_except_unwind_info, sjlj_except_unwind_info): Update
3073         prototypes.
3074         * doc/tm.texi.in (TARGET_IRA_COVER_CLASSES,
3075         TARGET_HAVE_NAMED_SECTIONS, TARGET_UNWIND_TABLES_DEFAULT):
3076         Document that hooks must not be modified.
3077         (TARGET_EXCEPT_UNWIND_INFO): Refer to opts argument.
3078         * doc/tm.texi: Regenerate.
3079         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Pass
3080         &global_options to targetm.except_unwind_info.
3081         * dwarf2out.c (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
3082         dwarf2out_begin_prologue, dwarf2out_frame_init,
3083         dwarf2out_frame_finish, dwarf2out_assembly_start): Pass
3084         &global_options to targetm.except_unwind_info.
3085         * except.c (init_eh, finish_eh_generation,
3086         gate_convert_to_eh_region_ranges,
3087         output_one_function_exception_table): Pass &global_options to
3088         targetm.except_unwind_info.
3089         * expr.c (build_personality_function): Pass &global_options to
3090         targetm.except_unwind_info.
3091         * function.c (expand_function_end): Pass &global_options to
3092         targetm.except_unwind_info.
3093         * hooks.c (hook_bool_bool_gcc_optionsp_false): New.
3094         * hooks.h (hook_bool_bool_gcc_optionsp_false): Declare.
3095         * opts.c (finish_options): Pass opts to targetm.except_unwind_info
3096         and targetm.supports_split_stack.  Remove assertions about opts
3097         and opts_set.
3098         (common_handle_option): Remove assertions about opts, opts_set and dc.
3099         * tree-tailcall.c (suitable_for_tail_call_opt_p): Pass
3100         &global_options to targetm.except_unwind_info.
3101         * tree.c (build_common_builtin_nodes: Pass &global_options to
3102         targetm.except_unwind_info.
3103         * config/arm/arm.c (arm_except_unwind_info): Add gcc_options parameter.
3104         (arm_compute_func_type, arm_expand_prologue, thumb_pushpop,
3105         thumb1_expand_prologue, thumb1_output_function_prologue,
3106         arm_unwind_emit, arm_output_fn_unwind): Update calls to
3107         arm_except_unwind_info.
3108         * config/i386/i386.c (ix86_supports_split_stack): Add gcc_options
3109         parameter.
3110         * config/ia64/ia64.c (ia64_except_unwind_info): Add gcc_options
3111         parameter.
3112         (ia64_output_function_prologue, ia64_add_bundle_selector_before,
3113         ia64_reorg, ia64_asm_unwind_emit): Update calls to
3114         ia64_except_unwind_info.
3115         * config/pa/pa.c (pa_option_override): Pass &global_options to
3116         targetm.except_unwind_info.
3117         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
3118         Remove prototype.
3119
3120 2010-11-25  Kai Tietz  <kai.tietz@onevision.com>
3121
3122         * cgraphunit.c (process_function_and_variable_attributes):
3123         Mark dllexport-ed function/variables as needed.
3124         * ipa.c (cgraph_externally_visible_p): Make dllexport-ed
3125         as externally visible.
3126
3127 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
3128
3129         PR rtl-optimization/46585
3130         * sel-sched-ir.c (return_regset_to_pool): Verify that RS is not NULL.
3131         (vinsn_init): Skip computation of dependencies for local NOPs.
3132         (vinsn_delete): Don't try to free regsets for local NOPs.
3133         (setup_nop_and_exit_insns): Change definition of nop_pattern.
3134
3135 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
3136
3137         PR rtl-optimization/46602
3138         * sel-sched-ir.c (maybe_tidy_empty_bb): Move checking ...
3139         (tidy_control_flow): Here.
3140
3141 2010-11-25  Joern Rennecke  <amylaar@spamcop.net>
3142             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3143
3144         PR bootstrap/45888
3145         * Makefile.in (s-tm-texi): Remove \r occurences from tmp-tm.texi.
3146         Fix target.def pathname in timestamp comparison.
3147
3148 2010-11-24  Richard Henderson  <rth@redhat.com>
3149
3150         * config/ia64/predicates.md (pmpyshr_operand): New.
3151         * config/ia64/ia64.c (ia64_expand_unpack): New.
3152         (ia64_expand_widen_mul_v4hi): New.
3153         (ia64_expand_widen_sum): Update for pattern renames.
3154         (ia64_expand_dot_prod_v8qi): Likewise.
3155         * config/ia64/ia64-protos.h: Update.
3156         * config/ia64/vect.md (vecwider): New mode attribute.
3157         (vec_widen_umult_lo_v8qi, vec_widen_umult_hi_v8qi): New.
3158         (vec_widen_smult_lo_v8qi, vec_widen_smult_hi_v8qi): New.
3159         (pmpyshr2, pmpyshr2_u): New.
3160         (vec_widen_smult_lo_v4hi, vec_widen_smult_hi_v4hi): New.
3161         (vec_widen_umult_lo_v4hi, vec_widen_umult_hi_v4hi): New.
3162         (mulv2si3): New.
3163         (vec_pack_ssat_v4hi): Rename from pack2_sss.
3164         (vec_pack_usat_v4hi): Rename from *pack2_uss.
3165         (vec_pack_ssat_v2si): Rename from pack4_sss.
3166         (vec_interleave_lowv8qi): Rename from unpack1_l, use the correct
3167         vec_select operation.
3168         (vec_interleave_highv8qi): Similarly.
3169         (mux1_alt): Rename from *mux1_alt.
3170         (vec_extract_evenv8qi, vec_extract_oddv8qi): New.
3171         (vec_interleave_lowv4hi): Rename from unpack2_l.
3172         (vec_interleave_highv4hi): Rename from unpack2_h.
3173         (mix2_r): Rename from *mix2_r.
3174         (mix2_l): Similarly.
3175         (vec_extract_evenodd_helper): New.
3176         (vec_extract_evenv4hi, vec_extract_oddv4hi): New.
3177         (vec_interleave_lowv2si): Rename from *unpack4_l.
3178         (vec_interleave_highv2si): Rename from *unpack4_h.
3179         (vec_extract_evenv2si, vec_extract_oddv2si): New.
3180         (vec_interleave_lowv2sf): Rename from fmix_r.
3181         (vec_interleave_highv2sf): Rename from *fmix_l.
3182         (vec_extract_evenv2sf, vec_extract_oddv2sf): New.
3183         (vec_unpacku_lo_<VECINT12>, vec_unpacku_hi_<VECINT12>): New.
3184         (vec_unpacks_lo_<VECINT12>, vec_unpacks_hi_<VECINT12>): New.
3185         (vec_pack_trunc_v4hi, vec_pack_trunc_v2si): New.
3186
3187 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
3188
3189         * targhooks.c (default_except_unwind_info): Remove
3190         MUST_USE_SJLJ_EXCEPTIONS case.
3191         * config/h8300/h8300.h (MUST_USE_SJLJ_EXCEPTIONS): Delete.
3192         * config/h8300/h8300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
3193         * doc/tm.texi.in (MUST_USE_SJLJ_EXCEPTIONS): Delete.
3194         * doc/tm.texi: Regenerate.
3195         * system.h (MUST_USE_SJLJ_EXCEPTIONS): Poison.
3196
3197 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
3198
3199         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
3200         __FLOAT_WORD_ORDER__ according to FLOAT_WORDS_BIG_ENDIAN.
3201         * config/dfp-bit.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Delete.
3202         * doc/cpp.texi (__FLOAT_WORD_ORDER__): Document.
3203         * system.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Poison.
3204
3205 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
3206
3207         PR target/46519
3208         * config/i386/i386.c (ix86_expand_call): Don't check
3209         TREE_THIS_VOLATILE.
3210
3211 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
3212
3213         PR target/46519
3214         * config/i386/i386.c (upper_128bits_state): New.
3215         (block_info_def): Remove upper_128bits_set and done.  Add state,
3216         referenced, count, processed and rescanned.
3217         (check_avx256_stores): Updated.
3218         (move_or_delete_vzeroupper_2): Updated. Handle deleted BB_END.
3219         Call note_stores only if needed.  Set referenced and count.
3220         (move_or_delete_vzeroupper_1): Updated.  Set rescan_vzeroupper_p.
3221         (rescan_move_or_delete_vzeroupper): New.
3222         (move_or_delete_vzeroupper):  Process and rescan all all basic
3223         blocks instead of predecessor blocks of all exit points.
3224         (ix86_option_override_internal): Enable vzeroupper optimization
3225         only for -fexpensive-optimizations and not optimizing for size.
3226         (use_avx256_p): Removed.
3227         (init_cumulative_args): Don't set use_avx256_p.
3228         (ix86_function_arg): Likewise.
3229         (ix86_expand_move): Likewise.
3230         (ix86_expand_vector_move_misalign): Likewise.
3231         (ix86_local_alignment): Likewise.
3232         (ix86_minimum_alignment): Likewise.
3233         (ix86_expand_epilogue): Don't check use_avx256_p when generating
3234         vzeroupper.
3235         (ix86_expand_call): Likewise.
3236
3237         * config/i386/i386.h (machine_function): Remove use_vzeroupper_p
3238         and use_avx256_p.  Add rescan_vzeroupper_p.
3239
3240 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
3241
3242         * toplev.c: Include <signal.h>.
3243
3244 2010-11-24  Richard Guenther  <rguenther@suse.de>
3245
3246         PR lto/43218
3247         * lto-symtab.c (lto_cgraph_replace_node): Mark edges with
3248         conflicting function signatures as non-inlineable.
3249
3250 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
3251
3252         PR rtl-optimization/46614
3253         * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP_P): Define.
3254          (deps_analyze_insn): Mark JUMP_INSNs in
3255         last_pending_memory_flush that weren't added through
3256         flush_pending_lists with NON_FLUSH_JUMP_KIND.
3257         (sched_analyze_2, sched_analyze_insn): Check NON_FLUSH_JUMP_P
3258         on INSN_LIST instead of JUMP_P check on its operand.
3259         * sched-rgn.c (concat_INSN_LIST): Copy over REG_NOTE_KIND.
3260
3261 2010-11-24  Richard Guenther  <rguenther@suse.de>
3262
3263         * lto-streamer-in.c (input_gimple_stmt): Use types_compatible_p.
3264
3265 2010-11-24  Richard Guenther  <rguenther@suse.de>
3266
3267         PR lto/46606
3268         * lto-streamer-in.c (input_gimple_stmt): When we cannot find
3269         a FIELD_DECL that is type correct issue a warning and fixup
3270         with a VIEW_CONVERT_EXPR.
3271
3272 2010-11-24  Basile Starynkevitch  <basile@starynkevitch.net>
3273
3274         * doc/invoke.texi (Options for Debugging Your Program or GCC):
3275         Explain static numbering of dump files.
3276
3277 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
3278
3279         * common.opt (user_vect_verbosity_level): New Variable entry.
3280         (ftree-vectorizer-verbose=): Mark as UInteger.
3281         * flag-types.h (enum vect_verbosity_levels): Move from enum
3282         verbosity_levels in tree-vectorizer.h.
3283         * opts.c: Don't include tree.h.
3284         (vect_set_verbosity_level): Move from tree-vectorizer.c.  Use
3285         gcc_options parameter; take integer option argument.
3286         (common_handle_option): Update call to vect_set_verbosity_level.
3287         * tree-vectorizer.c (user_vect_verbosity_level): Remove.
3288         (vect_set_verbosity_level): Move to opts.c.
3289         (vect_verbosity_level, vect_print_dump_info): Update for change of
3290         enum name.
3291         * tree-vectorizer.h (enum verbosity_levels): Move to flag-types.h.
3292         (vect_print_dump_info): Update for change of enum name.
3293         * tree.h (vect_set_verbosity_level): Remove.
3294         * Makefile.in (opts.o): Update dependencies.
3295
3296 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
3297
3298         PR middle-end/46629
3299         * cfgexpand.c (maybe_cleanup_end_of_block): Test NEXT_INSN (insn)
3300         instead of insn with any_condjump_p.
3301
3302 2010-11-24  Mingjie Xing  <mingjie.xing@gmail.com>
3303
3304         * config/mips/loongson.md: Change the description comment of the file
3305         and update the copyright years.
3306         (define_insn "<u>div<mode>3): Add loongson3a support.
3307         (define_insn "<u>mod<mode>3"): Likewise.
3308         * config/mips/mips.md: Rename mul<mode>3_mul3_ls2ef to
3309         mul<mode>3_mul3_loongson.
3310         (define_expand "mul<mode>3"): Add TARGET_LOONGSON_3A.
3311         (define_insn "mul<mode>3_mul3_loongson"): Add loongson3a support.
3312
3313 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
3314
3315         * common.opt (initial_max_fld_align, flag_debug_asm,
3316         flag_dump_rtl_in_asm, flag_dump_all_passed, rtl_dump_and_exit,
3317         flag_print_asm_name, graph_dump_format, help_printed,
3318         help_columns, flag_opts_finished): New Variable entries.
3319         (fdbg-cnt-list, fdbg-cnt=, fdebug-prefix-map=, frandom-seed,
3320         frandom-seed=): Mark deferred.
3321         (fsched-verbose=): Use UInteger and Var.
3322         * flags.h (set_struct_debug_option, flag_print_asm_name,
3323         rtl_dump_and_exit, flag_debug_asm, flag_dump_rtl_in_asm,
3324         graph_dump_format): Don't declare here.
3325         * haifa-sched.c (sched_verbose_param, fix_sched_param): Remove.
3326         * opts-global.c: Include dbgcnt.h and debug.h.
3327         (decode_options): Pass location to finish_options.
3328         (handle_common_deferred_options): Check flag_dump_all_passed.
3329         Handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list, OPT_fdebug_prefix_map_,
3330         OPT_frandom_seed and OPT_frandom_seed_.  Don't assert on
3331         OPT_fstack_limit.
3332         * opts.c: Don't include toplev.h, dbgcnt.h or debug.h.
3333         (set_struct_debug_option): Add location_t parameter.  Update
3334         recursive call.  Use error_at.
3335         (default_options_optimization): Use error_at.
3336         (finish_options): Add location_t parameter.  Use
3337         opts->x_flag_opts_finished instead of first_time_p.  Use
3338         opts->x_optimize instead of optimize.  Use error_at.  Pass
3339         location to inform.
3340         (print_filtered_help): Use opts->x_help_printed to track what
3341         options have been printed.
3342         (print_specific_help): Use opts->x_help_columns to track number of
3343         columns.
3344         (common_handle_option): Pass locations and gcc_options pointers to
3345         more functions.  Use warning_at instead of fnotice and warning.
3346         Don't handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list or
3347         OPT_fdebug_prefix_map_.  Use error_at.  Set
3348         opts->x_initial_max_fld_align; don't set maximum_field_alignment.
3349         Don't handle OPT_frandom_seed or OPT_frandom_seed_.  Don't handle
3350         OPT_fsched_verbose_.
3351         (handle_param): Add location_r parameter.  Use error_at.
3352         (set_debug_level): Add location_r parameter.  Use error_at and
3353         warning_at.
3354         (setup_core_dumping): Add diagnostic_context parameter.
3355         (decode_d_option): Add gcc_options, location_t and
3356         diagnostic_context parameters and use them instead of global
3357         state.  Use warning_at.
3358         (enable_warning_as_error): Use error_at.
3359         * opts.h (finish_options): Update prototype.
3360         (set_struct_debug_option): Declare here.
3361         * rtl.h (fix_sched_param): Remove.
3362         * stor-layout.c (initial_max_fld_align): Remove.
3363         * toplev.c (rtl_dump_and_exit, flag_print_asm_name,
3364         graph_dump_format, flag_debug_asm, flag_dump_rtl_in_asm): Remove.
3365         (process_options): Set maximum_field_alignment.
3366         * tree.h (initial_max_fld_align) Don't declare here.
3367         * Makefile.in (opts.o, opts-global.o): Update dependencies.
3368
3369 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
3370
3371         * flag-types.h (struct visibility_flags): Don't declare here.
3372         * flags.h (strip_off_ending, fast_math_flags_set_p,
3373         fast_math_flags_struct_set_p): Declare here.
3374         (visibility_options): Don't declare here.
3375         * opts-common.c (option_enabled, get_option_state): Move from
3376         opts.c.
3377         * opts-global.c: Include diagnostic.h instead of
3378         diagnostic-core.h.  Include tree.h, langhooks.h, lto-streamer.h
3379         and toplev.h.
3380         (const_char_p, ignored_options, in_fnames, num_in_fnames,
3381         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
3382         print_ignored_options, unknown_option_callback,
3383         post_handling_callback, lang_handle_option, add_input_filename,
3384         read_cmdline_options, initial_lang_mask, init_options_once,
3385         decode_cmdline_options_to_array_default_mask,
3386         set_default_handlers, decode_options): Move from opts.c.
3387         (print_ignored_options): Use warning_at instead of saving and
3388         restoring input_location.
3389         * opts.c: Include <signal.h> and <sys/resource.h>.  Include rtl.h
3390         instead of expr.h.  Don't include langhooks.h, except.h or
3391         lto-streamer.h.  Add more comments on includes.
3392         (strip_off_ending, setup_core_dumping, decode_d_option): Move from
3393         toplev.c.
3394         (visibility_options): Move to c-family/c-common.c.
3395         (const_char_p, ignored_options, in_fnames, num_in_fnames,
3396         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
3397         print_ignored_options, unknown_option_callback,
3398         post_handling_callback, lang_handle_option, add_input_filename,
3399         read_cmdline_options, initial_lang_mask, init_options_once,
3400         decode_cmdline_options_to_array_default_mask,
3401         set_default_handlers, decode_options): Move to opts-global.c.
3402         (target_handle_option, default_options_optimization,
3403         finish_options, common_handle_option): Remove static.
3404         (option_enabled, get_option_state): Move to opts-common.c.
3405         * opts.h (common_handle_option, target_handle_option,
3406         finish_options, default_options_optimization): Declare.
3407         * toplev.c: Don't include <signal.h> or <sys/resource.h>.
3408         (setup_core_dumping, strip_off_ending, decode_d_option): Move to
3409         opts.c.
3410         * toplev.h (strip_off_ending, decode_d_option,
3411         fast_math_flags_set_p, fast_math_flags_struct_set_p): Don't
3412         declare here.
3413         * Makefile.in (opts.o, opts-global.o): Update dependencies.
3414
3415 2010-11-23  Dave Korn  <dave.korn.cygwin@gmail.com>
3416
3417         PR driver/42690
3418         * gcc.c (LINK_COMMAND_SPEC): Remove hard-coded pass-through plugin
3419         options, replace by call of pass-through-libs spec function to process
3420         link_gcc_c_sequence spec.
3421         (lto_libgcc_spec): Delete variable.
3422         (static_specs[]): Remove related entry.
3423         (static_spec_functions[]): Add new entry for pass-through-libs.
3424         (main): Don't generate deleted lto_libgcc_spec.
3425         (pass_through_libs_spec_func): New function to implement the new
3426         pass-through-libs spec function.
3427         * doc/invoke.texi (pass-through-libs): Document new spec function.
3428
3429 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
3430
3431         * doc/options.texi (Warning, Optimization): Document.
3432
3433 2010-11-23  Jan Hubicka  <jh@suse.cz>
3434
3435         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro.
3436         (tree_decl_with_vis): Add implicit_section_name_p.
3437         * targhooks.h (default_function_section): Declare.
3438         * target.def (function_section): New hook.
3439         * defaults.h (HOT_TEXT_SECTION_NAME,
3440         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
3441         * predict.c (choose_function_section): Remove.
3442         (estimate_bb_frequencies): Do not use choose_function_section.
3443         * coretypes.h (enum node_frequency): Move here from cgraph.h
3444         * cgraph.h (enum node_frequency): Remove.
3445         * varasm.c (initialize_cold_section_name, unlikely_text_section,
3446         unlikely_text_section_p): Remove.
3447         (named_subsection_entry): New structure.
3448         (get_text_section): New function.
3449         (default_function_section): New function.
3450         (function_section_1): Break out from ...; handle profile info.
3451         (function_section): ... here.
3452         (unlikely_text_section): Remove.
3453         (unlikely_text_section_p): Use function_section_1.
3454         (assemble_start_function): Do not initialize cold section.
3455         (default_section_type_flags): Do not special case cold subsection.
3456         (switch_to_section): Likewise.
3457         * output.h (get_text_section): Define.
3458         * config/i386/winnt.c: Do not special case cold section.
3459         * config/darwin-protos.h (darwin_function_section): Declare.
3460         * config/microblaze/microblaze.h (HOT_TEXT_SECTION_NAME,
3461         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
3462         * config/ia64/hpux.h (HOT_TEXT_SECTION_NAME,
3463         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
3464         (TARGET_ASM_FUNCTION_SECTION): Define to ia64_hpux_function_section.
3465         * config/ia64/ia64.c (ia64_hpux_function_section): New function.
3466         * config/darwin.c (machopic_select_section): Use
3467         darwin_function_section.
3468         (darwin_function_section): New function.
3469         * config/darwin.h (HOT_TEXT_SECTION_NAME,
3470         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
3471         (TARGET_ASM_FUNCTION_SECTION): Define.
3472         * system.h (HOT_TEXT_SECTION_NAME,
3473         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Poison.
3474
3475 2010-11-23  Iain Sandoe  <iains@gcc.gnu.org>
3476
3477         * config/darwin.h (LINK_COMMAND_SPEC_A): Use %(link_gcc_c_sequence).
3478         LINK_GCC_C_SEQUENCE_SPEC: Define new macro.
3479
3480 2010-11-23  Jakub Jelinek  <jakub@redhat.com>
3481
3482         PR middle-end/46499
3483         * cfgexpand.c (maybe_cleanup_end_of_block): Remove also BARRIERs
3484         following unconditional jumps.
3485
3486 2010-11-23  Richard Guenther  <rguenther@suse.de>
3487
3488         * doc/md.texi (386 constraints): Clarify A constraint documentation.
3489
3490 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
3491             Jeremie Salvucci  <jeremie.salvucci@free.fr>
3492
3493         * gengtype.c (enum typekind, struct options)
3494         (struct nested_ptr_data, struct pair, NUM_PARAM)
3495         (enum gc_used_num, struct type, UNION_P, UNION_OR_STRUCT_P):
3496         Move to gengtype.h.
3497         (string_type, scalar_nonchar, scalar_nonchar, scalar_char):
3498         Remove static, add zero state_number.
3499         (typedefs, structures, param_structs, variables): Remove static.
3500         (create_option): Remove.
3501         (create_string_option, create_type_option, create_nested_option):
3502         New functions.
3503         (create_nested_ptr_option): Use create_nested_option.
3504         (note_variable, adjust_field_rtx_def, adjust_field_type): Call the
3505         new create*option functions.
3506         (process_gc_options): Adjust for discriminated option.
3507         (output_mangled_typename): Handle TYPE_NONE.
3508         (walk_type): Test option kinds.
3509         (write_types_process_field): Handle TYPE_NONE and TYPE_ARRAY.
3510         (write_func_for_structure, write_type, write_local, write_root)
3511         (write_roots, note_def_vec, dump_options): Adjust for
3512         discriminated option.
3513
3514         * gengtype.h (typedefs, structures, param_structs, variables
3515         enum typekind): Move from gengtype.c
3516         (enum option_kind): New discriminating enumeration.
3517         (struct options): Becomes discriminated.
3518         (struct nested_ptr_data): Nove from gengtype.c
3519         (create_string_option, create_type_option, create_nested_option)
3520         (create_nested_ptr_option): New functions
3521         (struct pair, enum_gc_used_enum, NUM_PARAM, struct type, UNION_P)
3522         (UNION_OR_STRUCT_P): Move from gengtype.c
3523
3524         * gengtype-parse.c (str_optvalue_opt, type_optvalue, option): Make
3525         discriminated options.
3526
3527 2010-11-23  Richard Guenther  <rguenther@suse.de>
3528
3529         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work
3530         twice.  Avoid re-allocating the ops vector all the time.
3531
3532 2010-11-23  Richard Guenther  <rguenther@suse.de>
3533
3534         * tree-ssa-alias.c (refs_may_alias_p_1): Avoid calls to
3535         is_gimple_min_invariant, group tree code checks to allow
3536         combining them.
3537         (stmt_may_clobber_ref_p_1): Check for SSA_NAME instead
3538         of is_gimple_reg.
3539
3540 2010-11-23  Eric Botcazou  <ebotcazou@adacore.com>
3541
3542         * config.gcc (sparc*-*-*): Reorder.
3543
3544 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
3545
3546         * gengtype.c (header_dot_h_frul, source_dot_c_frul):
3547         Remove ENABLE_CHECKING around DBGPRINTF.
3548
3549 2010-11-22  Joseph Myers  <joseph@codesourcery.com>
3550
3551         * common.opt (exit_after_options, write_symbols, debug_info_level,
3552         use_gnu_debug_info_extensions): New Variable entries.
3553         (fprofile-dir=): Use Var.
3554         * flag-types.h (enum debug_info_level): Rename to enum
3555         debug_info_levels.
3556         * flags.h (write_symbols, debug_info_level,
3557         use_gnu_debug_info_extensions): Remove declarations.
3558         * opts.c (exit_after_options, write_symbols, debug_info_level): Remove.
3559         (set_struct_debug_option): Make static variables const.
3560         (use_gnu_debug_info_extensions): Remove.
3561         (set_debug_level, print_filtered_help, print_specific_help,
3562         fast_math_flags_set_p): Take gcc_options parameters and use them
3563         in place of global variables.
3564         (print_filtered_help): Make new_help non-static.
3565         (print_specific_help): Update call to print_filtered_help.
3566         (common_handle_option): Update calls to print_specific_help.  Use
3567         gcc_options structure for more settings.  Make --help table
3568         const.  Don't handle OPT_fprofile_dir_ here.  Update calls to
3569         set_debug_level.
3570         * toplev.c (profile_data_prefix): Remove.
3571         * toplev.h (profile_data_prefix, exit_after_options): Remove
3572         declarations.
3573         (fast_math_flags_set_p): Update prototype.
3574         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
3575         Update call to fast_math_flags_set_p.
3576
3577 2010-11-22  Richard Henderson  <rth@redhat.com>
3578
3579         PR target/46434
3580         * config/crx/crx.c (crx_addr_reg): Rename from crx_addr_reg_p;
3581         return the address register extracted.
3582         (crx_decompose_address): Update the extracted address register.
3583
3584 2010-11-22  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
3585
3586         PR driver/43335
3587         * gcc.c (main): Don't crash when lto-wrapper program is not found.
3588
3589 2010-11-22  Joern Rennecke  <amylaar@spamcop.net>
3590
3591         PR target/46608
3592         * config/picochip/picochip.c (picochip_secondary_reload): Make static.
3593         * config/picochip/picochip-protos.h: Don't include "target.h" .
3594         (picochip_secondary_reload): Don't declare.
3595
3596         PR target/46613
3597         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Declare.
3598         * config/m32c/m32c.c (m32c_conditional_register_usage): No longer
3599         static.
3600
3601 2010-11-22  H.J. Lu  <hongjiu.lu@intel.com>
3602
3603         PR bootstrap/46609
3604         * gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING.
3605         (source_dot_c_frul): Likewise.
3606
3607 2010-11-22  Basile Starynkevitch  <basile@starynkevitch.net>
3608
3609         * gimple-pretty-print.c (dump_bb_header): Add check for cfun.
3610
3611 2010-11-22  Paolo Bonzini  <bonzini@gnu.org>
3612
3613         PR bootstrap/44970
3614         * Makefile.in (fwprop.o) Add sparseset.h.
3615         * fwprop.c: Include sparseset.h
3616         (struct find_occurrence_data, find_occurrence_callback,
3617         find_occurrence): Remove.
3618         (active_defs, active_defs_check, register_active_defs,
3619         update_df_init, update_uses): New.
3620         (update_df): Rewrite.
3621         (try_fwprop_subst, forward_propagate_asm): Add calls to
3622         update_df_init and update_df.
3623         (fwprop_init): Allocate active_defs and active_defs_check.
3624         (fwprop_done): Free them.
3625         (fwprop, fwprop_addr): Adjust comments.
3626         * df.h (df_uses_create): Declare.
3627         * df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
3628         (df_ref_create): Return result of df_ref_create_structure directly.
3629         (df_ref_create_structure): Call df_install_ref_incremental when
3630         no collection_rec is passed.
3631         (df_ref_record): Do not create multiword hard reg info when no
3632         collection_rec is passed.
3633         (df_uses_create): New.
3634
3635 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
3636
3637         PR middle-end/43057
3638         * fold-const.c (pedantic_non_lvalue_loc): Unshare x before
3639         setting location.
3640
3641 2010-11-22  Richard Guenther  <rguenther@suse.de>
3642
3643         * gimple-fold.c (maybe_fold_reference): When canonicalizing
3644         MEM_REFs, preserve volatileness.
3645         * cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
3646         addresses.
3647
3648 2010-11-22  Richard Guenther  <rguenther@suse.de>
3649
3650         * tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.
3651
3652 2010-11-22  Alexander Monakov  <amonakov@ispras.ru>
3653
3654         PR rtl-optimization/45652
3655         * alias.c (get_reg_base_value): New.
3656         * rtl.h (get_reg_base_value): Add prototype.
3657         * sel-sched.c (init_regs_for_mode): Use it.  Don't use registers with
3658         non-null REG_BASE_VALUE for renaming.
3659
3660 2010-11-22  Jeremie Salvucci  <jeremie.salvucci@free.fr>
3661             Basile Starynkevitch  <basile@starynkevitch.net>
3662
3663         * gengtype.c: Include xregex.h and obstack.h
3664         Added comments about role of get_output_file_with_visibility and
3665         our regexpr machinery.
3666         (frul_actionrout_t, struct file_rule_st): New.
3667         (hader_dot_h_frul, source_dot_c_frul): New functions.
3668         (NULL_REGEX,  NULL_FRULACT): New.
3669         (files_rules): New.
3670         (matching_file_name_substitute): New function.
3671         (get_output_file_with_visibility): Updated comments and rewritten
3672         to use the new files_rules machinery.
3673
3674         * Makefile.in (XREGEX_H): Added variable.
3675         (build/gengtype.o): Added dependencies for xregex.h and obstack.h
3676
3677 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
3678
3679         * system.h (FUNCTION_ARG_BOUNDARY): Really poison.
3680
3681 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
3682
3683         * target.def (conditional_register_usage): Define.
3684         * reginfo.c (init_reg_sets_1): Call
3685         targetm.conditional_register_usage.
3686         * system.h (CONDITIONAL_REGISTER_USAGE): Poison.
3687         * doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
3688         for making it a hook.
3689         * doc/tm.texi: Regenerate.
3690         * config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3691         * config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
3692         New function.
3693         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3694         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3695         * config/arc/arc.c (arc_conditional_register_usage): ...here.
3696         New function.
3697         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3698         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3699         * config/arm/arm.c (arm_conditional_register_usage): ...here.
3700         New function.
3701         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3702         * config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
3703         * config/bfin/bfin-protos.h (conditional_register_usage): Delete.
3704         * config/bfin/bfin.c (conditional_register_usage): Move code into...
3705         (bfin_conditional_register_usage): ...here.  New function.
3706         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3707         * config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
3708         * config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
3709         * config/cris/cris.c (cris_conditional_register_usage): Make static.
3710         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3711         * config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
3712         * config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
3713         * config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
3714         * config/frv/frv.c (frv_conditional_register_usage): Make static.
3715         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3716         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3717         * config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
3718         New function.
3719         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3720         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
3721         * config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
3722         * config/i386/i386.c (ix86_conditional_register_usage): Make static.
3723         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3724         * config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
3725         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
3726         * config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
3727         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3728         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3729         * config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
3730         New function.
3731         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3732         * config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
3733         * config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
3734         Delete.
3735         * config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
3736         static.
3737         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3738         * config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
3739         * config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
3740         * config/mep/mep.c (mep_conditional_register_usage): Make static.
3741         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3742         * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
3743         * config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
3744         * config/mips/mips.c (mips_conditional_register_usage): Make static.
3745         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3746         * config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
3747         * config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
3748         * config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
3749         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3750         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3751         * config/mn10300/mn10300.c (mn10300_conditional_register_usage):
3752         ...here.  New function.
3753         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3754         * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3755         * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
3756         * config/pa/pa.c (pa_conditional_register_usage): ...here.
3757         New function.
3758         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3759         * config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3760         * config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
3761         New function.
3762         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3763         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
3764         * config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
3765         Delete.
3766         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
3767         static.
3768         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3769         * config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
3770         * config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
3771         * config/rx/rx.c (rx_conditional_register_usage): Make static.
3772         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3773         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
3774         * config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
3775         * config/s390/s390.c (s390_conditional_register_usage): Make static.
3776         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3777         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3778         * config/score/score.c (score_conditional_register_usage): ...here.
3779         New function.
3780         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3781         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3782         * config/sh/sh.c (sh_conditional_register_usage): ...here.
3783         New function.
3784         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3785         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3786         * config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
3787         New function.
3788         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3789         * config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
3790         * config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
3791         * config/spu/spu.c (spu_conditional_register_usage): Make static.
3792         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3793         * config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3794         * config/v850/v850.c (v850_conditional_register_usage): ...here.
3795         New function.
3796         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3797
3798 2010-11-21  Jan Hubicka  <jh@suse.cz>
3799             Dominique d'Humieres <dominiq@lps.ens.ft>
3800
3801         PR target/46510
3802         * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
3803         finalize external decls.
3804
3805 2010-11-21  Joseph Myers  <joseph@codesourcery.com>
3806
3807         * system.h (strerror): Poison.
3808
3809 2010-11-21  Richard Henderson  <rth@redhat.com>
3810
3811         * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
3812         for infq/huge_valq.
3813
3814 2010-11-21  Richard Henderson  <rth@redhat.com>
3815
3816         PR rtl-optimization/46571
3817         * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
3818         (compute_hash_table_work): Use NONDEBUG_INSN_P.
3819
3820 2010-11-21  Paul Koning  <ni1d@arrl.net>
3821
3822         * config/mips/pdp11.md (negsi2): Fix wrong code.
3823
3824 2010-11-21  Paul Koning  <ni1d@arrl.net>
3825
3826         * config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
3827         * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3828
3829 2010-11-21  Eric Botcazou  <ebotcazou@adacore.com>
3830
3831         * config/mips/mips.c (machine_function): Rename load_label_length to
3832         load_label_num_insns.
3833         (mips_load_label_length): Rename to...
3834         (mips_load_label_num_insns): ...this.  Adjust to first renaming.
3835         (mips_adjust_insn_length): Adjust to second renaming.  Fix thinko.
3836
3837 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
3838
3839         PR target/46533
3840         * config/alpha/predicates.md (direct_call_operand): Return false
3841         for !TARGET_SMALL_TEXT targets.
3842
3843 2010-11-20  Joseph Myers  <joseph@codesourcery.com>
3844
3845         * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
3846         HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
3847         (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
3848         * doc/tm.texi: Regenerate.
3849         * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
3850         HANDLE_PRAGMA_WEAK): Poison.
3851         * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
3852         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3853         * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
3854         * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
3855         * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3856         * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
3857         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3858         * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
3859         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3860         * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
3861         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3862         * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
3863         * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3864         * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3865         * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
3866         (HANDLE_PRAGMA_WEAK): Don't undefine.
3867         * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3868         * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
3869         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3870         * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
3871         * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
3872         (HANDLE_PRAGMA_WEAK): Don't undefine.
3873         * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3874         * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
3875         (HANDLE_PRAGMA_PACK): Don't undefine.
3876         * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
3877         * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3878         * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3879         * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3880         * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
3881         * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
3882         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3883         * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
3884         * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
3885         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3886         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
3887         * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3888         * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3889         * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
3890         * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3891         * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
3892         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3893
3894 2010-11-20  Eric Botcazou  <ebotcazou@adacore.com>
3895
3896         PR target/31100
3897         * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
3898         * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
3899         * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
3900
3901 2010-11-20  Jan Hubicka  <jh@suse.cz>
3902
3903         * cgraph.c (ld_plugin_symbol_resolution_names): New.
3904         (dump_cgraph_node): Dump resolution.
3905         * cgraph.h (ld_plugin_symbol_resolution_names): Declare.
3906         (cgraph_comdat_can_be_unshared_p): Dclare.
3907         * lto-streamer-out.c (produce_symtab): Use
3908         cgraph_comdat_can_be_unshared_p.
3909         * ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
3910         (cgraph_comdat_can_be_unshared_p): New function based on logic
3911         in cgraph_externally_visible_p.
3912         (cgraph_externally_visible_p): Use it.
3913         (varpool_externally_visible_p): Virtual tables can be unshared.
3914         * varpool.c (dump_varpool_node): Dump resolution.
3915
3916 2010-11-20  Jan Hubicka  <jh@suse.cz>
3917
3918         * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
3919
3920 2010-11-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3921
3922         PR other/46202
3923         * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
3924         (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
3925         shell quoting.
3926         (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
3927         (install-strip): New target.
3928         (STRIPPROG): New variable, exported if STRIP is set.
3929         * doc/install.texi (Final install): Minor markup and code style
3930         fixes.  Document install-strip target.
3931
3932 2010-11-20  Paul Koning  <ni1d@arrl.net>
3933
3934         * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
3935         pdp11_regno_reg_class): New functions.
3936         * config/pdp11/pdp11.md (define_constants): Add register numbers.
3937         * config/pdp11/pdp11.c (pdp11_regno_reg_class,
3938         pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
3939         functions.
3940         * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
3941         frame pointer and argument pointer pseudo-registers.
3942         (ARG_POINTER_REGNUM): Define.
3943         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
3944         argument pointer.
3945         (FIRST_PARM_OFFSET): Update for argument pointer.
3946         (INITIAL_FRAME_POINTER_OFFSET): Delete.
3947         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
3948         (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
3949         frame pointer and argument pointer.
3950
3951 2010-11-20  Jakub Jelinek  <jakub@redhat.com>
3952
3953         PR debug/46561
3954         * tree-parloops.c (try_create_redunction_list): Ignore debug stmts
3955         when looking for immediate uses.
3956
3957         PR tree-optimization/45830
3958         * stmt.c (expand_switch_using_bit_tests_p): New function.
3959         (expand_case): Use it.
3960         * tree.h (expand_switch_using_bit_tests_p): New prototype.
3961         * tree-switch-conversion.c (struct switch_conv_info): Add
3962         bit_test_uniq, bit_test_count and bit_test_bb fields.
3963         (check_range): Fix a comment.
3964         (check_process_case): Compute bit_test_uniq and bit_test_count.
3965         (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
3966         allocation.
3967         (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
3968         (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
3969         (array_value_type): New function.
3970         (build_one_array): Use it, if it returned different type,
3971         fold_convert all constructor fields and convert back to the
3972         wider type in the generated code.
3973         (process_switch): Initialize bit_test_uniq, bit_test_count and
3974         bit_test_bb fields.  Don't optimize if expand_switch_using_bit_tests_p
3975         returned true.
3976
3977 2010-11-19  Michael Matz  <matz@suse.de>
3978
3979         PR tree-optimization/46077
3980         * tree-chrec.c (eq_evolutions_p): Accept some expressions.
3981
3982 2010-11-19  Anatoly Sokolov  <aesok@post.ru>
3983
3984         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
3985         * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
3986         function.
3987         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
3988
3989 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
3990
3991         * mode-switching.c (optimize_mode_switching): Use
3992         FOR_BB_INSNS instead of open-coded loop.
3993         * cfgrtl.c (redirect_branch_edge): Ditto.
3994
3995 2010-11-19  Joern Rennecke  <amylaar@spamcop.net>
3996
3997         PR target/46436
3998         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
3999         to accomodate 32 bit HOST_WIDE_INT.
4000         (m68hc11_emit_logical): Remove unused variable insn.
4001         (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
4002         this_insn_uses_iy before use.
4003
4004         PR target/46434
4005         * config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
4006
4007 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
4008
4009         PR c/46547
4010         * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
4011         * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
4012
4013 2010-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
4014
4015         * doc/extend.texi (Function attributes): Document PowerPC target
4016         attributes that are supported.
4017         (Pragmas): Document that PowerPC now supports target pragmas.
4018
4019         * doc/options.texi (TargetVariable): Document TargetVariable,
4020         HeaderInclude, and SourceInclude.
4021
4022         * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
4023         mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
4024         -ffp-contract=off.
4025
4026         * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
4027         SourceInclude directives.  Fix a cut+paste error with target save
4028         enum variables.  Sort enums in the structures after ints and
4029         before shorts.
4030         * opth-gen.awk: Ditto.
4031
4032         * configure.ac: Add support for HeaderInclude and SourceInclude option
4033         directives to add the appropriate files to the dependency lists.
4034         * configure: Regenerate.
4035         * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
4036         (OPTIONS_C_EXTRA): New variable for SourceInclude.
4037         (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
4038         (options.o): Add $(OPTIONS_C_EXTRA) dependency.
4039         (gcc-options.o): Ditto.
4040         * opt-include.awk: New awk script to handle HeaderInclude and
4041         TargetInclude.
4042
4043         * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
4044         gets saved in the target options.
4045         * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
4046         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
4047         (-mprototype): Ditto.
4048         (-mbit-word): ditto.
4049         (-mregnames): Ditto.
4050         (-msecure-plt): Ditto.
4051         (-mbss-plt): Ditto.
4052         * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
4053         (-mpowerpc-gfxopt): Ditto.
4054         (-mmfcrf): Ditto.
4055         (-mpopcntb): Ditto.
4056         (-mfprnd): Ditto.
4057         (-mcmpb): Ditto.
4058         (-mmmfpgpr): Ditto.
4059         (-maltivec): Ditto.
4060         (-mhard-dfp): Ditto.
4061         (-mmulhw): Ditto.
4062         (-mdlmzb): Ditto.
4063         (-mmultiple): Ditto.
4064         (-mstring): Ditto.
4065         (-mpopcntd): Ditto.
4066         (-mfriz): Ditto.
4067         (-mvsx): Ditto.
4068         (-mno-update): Ditto.
4069         (-mavoid-indexed-addresses): Ditto.
4070         (-mtls-markers): Ditto.
4071         (-msched-epilog): Ditto.
4072         (-msched-prolog): Ditto.
4073         (-maix-struct-return): Ditto.
4074         (-msvr4-struct-return): Ditto.
4075         (-mxl-compat): Ditto.
4076         (-mrecip-precision): Ditto.
4077         (-mfp-in-toc): Ditto.
4078         (-msum-in-toc): Ditto.
4079         (-mvrsave): Ditto.
4080         (-mblock-move-inline-limit=): Ditto.
4081         (-misel): Ditto.
4082         (-mpaired): Ditto.
4083         (-mlongcall): Ditto.
4084         (-mgen-cell-microcode): Ditto.
4085         (-mwarn-cell-microcode): Ditto.
4086         (-mwarn-altivec-long): Ditto.
4087         (-mprioritize-restricted-insns=): Ditto.
4088         (-msingle-float): Ditto.
4089         (-mdouble-float): Ditto.
4090         (-msimple-fpu): Ditto.
4091         (-mxilinx-fpu): Ditto.
4092         * config/rs6000/aix64.opt (-mpe): Ditto.
4093
4094         * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
4095         (rs6000_cpu): Move variable to be a target variable.  Rename
4096         cmodel to rs6000_current_cmodel because of macro conflict.  Merge
4097         -mdebug=<xxx> variables into a single int.
4098         (rs6000_always_hint): Ditto.
4099         (rs6000_sched_groups): Ditto.
4100         (rs6000_align_branch_targets): Ditto.
4101         (rs6000_sched_costly_dep): Ditto.
4102         (rs6000_sched_insert_nops): Ditto.
4103         (rs6000_long_double_type_size): Ditto.
4104         (rs6000_ieeequad): Ditto.
4105         (rs6000_altivec_abi): Ditto.
4106         (rs6000_spe): Ditto.
4107         (rs6000_spe_abi): Ditto.
4108         (rs6000_float_gprs): Ditto.
4109         (rs6000_darwin64_abi): Ditto.
4110         (can_override_loop_align): Ditto.
4111         (rs6000_sdata): Ditto.
4112         (rs6000_tls_size): Ditto.
4113         (rs6000_current_abi): Ditto.
4114         (rs6000_traceback): Ditto.
4115         (rs6000_alignment_flags): Ditto.
4116         (rs6000_current_cmodel): Ditto.
4117         (rs6000_recip_control): Ditto.
4118         (rs6000_cpu_index): Ditto.
4119         (rs6000_tune_index): Ditto.
4120         (rs6000_debug): Ditto.
4121         (rs6000_target_flags_explict): Ditto.
4122
4123         * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
4124         declaration.
4125
4126         * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
4127         cmodel.  Change all uses.
4128
4129         * config/rs6000/rs6000.c (rs6000_always_hint): Move to
4130         rs6000.opt.  Combine -mdebug=<xxx> variables into a single int.
4131         Rename cmodel to rs6000_current_cmodel.
4132         (rs6000_sched_groups): Ditto.
4133         (rs6000_align_branch_targets): Ditto.
4134         (rs6000_sched_costly_dep): Ditto.
4135         (rs6000_sched_insert_nops): Ditto.
4136         (rs6000_long_double_type_size): Ditto.
4137         (rs6000_ieeequad): Ditto.
4138         (rs6000_altivec_abi): Ditto.
4139         (rs6000_spe): Ditto.
4140         (rs6000_spe_abi): Ditto.
4141         (rs6000_float_gprs): Ditto.
4142         (rs6000_darwin64_abi): Ditto.
4143         (can_override_loop_align): Ditto.
4144         (rs6000_sdata): Ditto.
4145         (rs6000_tls_size): Ditto.
4146         (rs6000_current_abi): Ditto.
4147         (rs6000_traceback): Ditto.
4148         (rs6000_alignment_flags): Ditto.
4149         (rs6000_current_cmodel): Ditto.
4150         (rs6000_recip_control): Ditto.
4151         (rs6000_cpu_index): Ditto.
4152         (rs6000_tune_index): Ditto.
4153         (rs6000_debug): Ditto.
4154         (rs6000_target_flags_explict): Ditto.
4155         (rs6000_sched_insert_nops_str): Make static.
4156         (rs6000_sched_costly_dep_str): Ditto.
4157         (rs6000_recip_name): Ditto.
4158         (rs6000_abi_name): Ditto.
4159         (rs6000_sdata_name): Ditto.
4160         (enum rs6000_traceback_name): Move to rs6000-opts.h.
4161         (rs6000_parse_tls_size_option): Delete.
4162         (rs6000_valid_attribute_p): New function for target attributes and
4163         pragmas.
4164         (rs6000_function_specific_save): Ditto.
4165         (rs6000_function_specific_restore): Ditto.
4166         (rs6000_function_specific_print): Ditto.
4167         (rs6000_can_inline_p): Ditto.
4168         (rs6000_set_current_function): Ditto.
4169         (rs6000_inner_target_options): Ditto.
4170         (rs6000_debug_target_options): Ditto.
4171         (rs6000_pragma_target_parse): Ditto.
4172         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
4173         attributes and pragmas.
4174         (TARGET_OPTION_SAVE): Ditto.
4175         (TARGET_OPTION_RESTORE): Ditto.
4176         (TARGET_OPTION_PRINT): Ditto.
4177         (TARGET_CAN_INLINE_P): Ditto.
4178         (TARGET_SET_CURRENT_FUNCTION): Ditto.
4179         (POWER_MASKS): Move to file level scope from the
4180         rs6000_option_override_internal function.
4181         (POWERPC_MASKS): Ditto.
4182         (ISA_*_MASKS): Ditto.
4183         (struct rs6000_ptt): Ditto.
4184         (processor_target_table): Ditto.
4185         (rs6000_cpu_name_lookup): Map cpu name to an index in
4186         processor_target_table.
4187         (rs6000_debug_reg_global): Print more information on processor
4188         options for -mdebug=reg.
4189         (rs6000_init_hard_regno_mode_ok): Add support for target
4190         attributes and pragmas.  Merge all -mdebug=<xxx> fields into one.
4191         Allow -mdebug=val1,val2.  Rename cmodel variable.
4192         (rs6000_option_override_internal): Ditto.
4193         (rs6000_option_override): Ditto.
4194         (rs6000_handle_option): Ditto.
4195         (rs6000_conditional_register_usage): Add debug trace message.
4196         (struct rs6000_opt_mask): New for target attribute/pragma support.
4197         (rs6000_opt_masks): Ditto.
4198         (struct rs6000_opt_var): Ditto.
4199         (rs6000_opt_vars): Ditto.
4200         (rs6000_previous_function): Ditto.
4201
4202         * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
4203         wasn't already included.
4204         (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
4205         (enum processor_type): Ditto.
4206         (rs6000_cpu): Ditto.
4207         (enum fpu_type_t): Ditto.
4208         (fpu_type): Ditto.
4209         (enum rs6000_dependence_cost): Ditto.
4210         (enum rs6000_nop_insertion): Ditto.
4211         (enum group_termination): Ditto.
4212         (rs6000_long_double_type_size): Ditto.
4213         (rs6000_ieeequad): Ditto.
4214         (rs6000_altivec_abi): Ditto.
4215         (rs6000_spe_abi): Ditto.
4216         (rs6000_spe): Ditto.
4217         (rs6000_float_gprs): Ditto.
4218         (rs6000_alignment_flags): Ditto.
4219         (rs6000_sched_insert_nops): Ditto.
4220         (enum rs6000_vector): Ditto.
4221         (enum rs6000_abi): Ditto.
4222         (rs6000_current_opt): Ditto.
4223         (rs6000_debug_*): Delete.
4224         (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
4225         (TARGET_DEBUG*): Ditto.
4226
4227         * config/rs6000/rs6000-opts.h: New header file to define the enums
4228         that are used in target variables that are now defined in rs6000.opt.
4229
4230         * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
4231         rs6000-opts.h.
4232         (rs6000_sdata): Ditto.
4233         (rs6000_abi_name): Delete.
4234         (rs6000_sdata_name): Ditto.
4235         (rs6000_tls_size_string): Ditto.
4236
4237 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
4238
4239         * common.opt (debug_struct_ordinary, debug_struct_generic): New
4240         Variable entries.
4241         * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
4242         should_emit_struct_debug): Move from opts.c.
4243         * flag-types.h (enum debug_struct_file): Move from opts.c.
4244         * flags.h (should_emit_struct_debug): Remove.
4245         (base_of_path): Declare.
4246         (set_struct_debug_option): Add gcc_options parameter.
4247         * optc-gen.awk, opth-gen.awk: Handle array variables.
4248         * opts.c (enum debug_struct_file, debug_struct_ordinary,
4249         debug_struct_generic): Remove.
4250         (set_struct_debug_option): Add gcc_options parameter.
4251         (base_of_path): Remove static.
4252         (main_input_basename, main_input_baselength, matches_main_base,
4253         dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
4254         Remove.
4255         * toplev.c (main_input_basename, main_input_baselength): Define
4256         here.
4257         * toplev.h (main_input_basename, main_input_baselength): Declare
4258         here.
4259
4260 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
4261
4262         * common.opt (flag_instrument_functions_exclude_functions,
4263         flag_instrument_functions_exclude_files): New Variable definitions.
4264         * flags.h (flag_instrument_functions_exclude_p): Don't declare.
4265         * gimplify.c (char_p): Declare type and vectors.
4266         (flag_instrument_functions_exclude_p): Moved from opts.c.  Make static.
4267         * opts.c (flag_instrument_functions_exclude_functions,
4268         flag_instrument_functions_exclude_files): Remove.
4269         (add_comma_separated_to_vector): Take void **.
4270         (flag_instrument_functions_exclude_p): Move to gimplify.c.
4271         (common_handle_option): Use options structure for
4272         -finstrument-functions-exclude- options.
4273
4274 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
4275
4276         * doc/options.texi (Var): Document effects of Defer.
4277         (Defer): Document.
4278         * opt-functions.awk (var_type, var_set): Handle deferred options.
4279         * opts-common.c (set_option): Handle CLVC_DEFER.
4280         * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
4281         fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
4282         fstack-limit-symbol=): Mark as deferred.
4283         * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
4284         plugin.h.
4285         (print_filtered_help): Don't report state of CLVC_DEFER options.
4286         (common_handle_option): Move code for OPT_fcall_used_,
4287         OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
4288         OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
4289         OPT_fstack_limit_symbol_ to opts-global.c.
4290         (option_enabled, get_option_state): Handle CLVC_DEFER.
4291         * opts.h: Include vec.h.
4292         (enum cl_var_type): Add CLVC_DEFER.
4293         (cl_deferred_option): Define type and vectors.
4294         (handle_common_deferred_options): Declare.
4295         * opts-global.c: New.
4296         * toplev.c (toplev_main): Call handle_common_deferred_options
4297         * Makefile.in (OPTS_H): Include $(VEC_H).
4298         (OBJS-common): Include opts-global.o.
4299         (opts.o): Update dependencies.
4300         (opts-global.o): Add dependencies.
4301
4302 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
4303
4304         * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
4305         to objc_declare_protocols.
4306
4307 2010-11-19  Richard Guenther  <rguenther@suse.de>
4308
4309         PR lto/45789
4310         * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
4311         IDENTIFIERs do not stream TREE_TYPE.
4312         * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
4313
4314 2010-11-19  Christian Borntraeger  <borntraeger@de.ibm.com>
4315
4316         * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
4317
4318 2010-11-19  Jakub Jelinek  <jakub@redhat.com>
4319
4320         PR target/45870
4321         * dwarf2out.c (const_ok_for_output_1): Don't complain about
4322         non-delegitimized TLS UNSPECs.
4323
4324 2010-11-18  Jack Howarth  <howarth@bromo.med.uc.edu>
4325             Ian Lance Taylor  <iant@google.com>
4326
4327         * config/darwin-c.c (darwin_additional_format_types): Export.
4328
4329 2010-11-18  Paul Koning  <ni1d@arrl.net>
4330
4331         * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
4332         pointer.
4333
4334 2010-11-18  Paul Koning  <ni1d@arrl.net>
4335
4336         * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
4337         * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
4338         * config/pdp11/pdp11.opt (-mabshi): Delete.
4339
4340 2010-11-19  Mingjie Xing  <mingjie.xing@gmail.com>
4341
4342         * resource.h (struct resources): Fix typo in the comment.
4343
4344 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
4345
4346         PR target/46546
4347         * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
4348
4349 2010-11-18  Richard Henderson  <rth@redhat.com>
4350
4351         PR middle-end/46515
4352         * function.c (maybe_copy_prologue_epilogue_insn): Rename from
4353         maybe_copy_epilogue_insn; handle prologue insns as well.
4354         * rtl.h, cfglayout.c: Update for rename.
4355         * recog.c (peep2_attempt): Copy prologue/epilogue data for
4356         RTX_FRAME_RELATED_P insns.
4357
4358 2010-11-18  Jakub Jelinek  <jakub@redhat.com>
4359
4360         PR middle-end/46534
4361         * builtins.c (fold_builtin_printf): Don't copy and modify string
4362         before build_string_literal, instead modify what
4363         build_string_literal returned.
4364
4365 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
4366
4367         PR c/33193
4368         * c-typeck.c (build_unary_op): Call build_real_imag_expr for
4369         REALPART_EXPR and IMAGPART_EXPR.
4370
4371 2010-11-18  Richard Guenther  <rguenther@suse.de>
4372
4373         PR tree-optimization/46172
4374         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
4375         function.
4376         (slpeel_tree_peel_loop_to_edge): Call it.
4377
4378 2010-11-18  Jeff Law  <law@redhat.com>
4379
4380         PR middle-end-optimization/46297
4381         * postreload.c (reload_combine_note_store): Deal with embedded
4382         side effects in MEM expressions.
4383
4384 2010-11-18  Richard Guenther  <rguenther@suse.de>
4385
4386         PR lto/45089
4387         * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
4388         when checking is not enabled.
4389
4390 2010-11-18  Richard Guenther  <rguenther@suse.de>
4391
4392         PR lto/46525
4393         * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
4394         type leaders.
4395         (gimple_register_canonical_type): Also cache the canoncial type
4396         for non type leaders.
4397
4398 2010-11-18  Richard Guenther  <rguenther@suse.de>
4399
4400         * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
4401
4402 2010-11-18  Alexander Monakov  <amonakov@ispras.ru>
4403
4404         PR middle-end/46518
4405         * sel-sched-ir.c (init_expr): Use the correct type for
4406         target_available.
4407         * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
4408
4409 2010-11-17  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
4410
4411         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
4412         as well as -mrelocatable at the same time.
4413
4414 2010-11-17  Quentin Neill  <quentin.neill.gnu@gmail.com>
4415
4416         PR target/46422
4417         * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
4418         Call the clz builtin.
4419
4420 2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
4421             Steve Ellcey  <sje@cup.hp.com>
4422
4423         PR middle-end/31490
4424         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
4425         if section attribute used.
4426
4427 2010-11-17  Jan Hubicka  <jh@suse.cz>
4428
4429         * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
4430         expand errno setting variant when optimizing for size.
4431
4432 2010-11-17  Eric Botcazou  <ebotcazou@adacore.com>
4433
4434         * postreload.c (reload_combine): Call control_flow_insn_p only once.
4435         Reverse backward loop.  Fix formatting issues.
4436
4437 2010-11-17  Paolo Bonzini  <bonzini@gnu.org>
4438
4439         * c-parser.c (c_token_is_qualifier,
4440         c_parser_next_token_is_qualifier): New.
4441         (c_parser_declaration_or_fndef, c_parser_struct_declaration):
4442         Improve error message on specs->tagdef_seen_p.
4443         (c_parser_struct_or_union_specifier): Improve error recovery.
4444         (c_parser_declspecs): Move exit condition on C_ID_ID early.
4445         Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
4446         using c_parser_next_token_is_qualifier; extend it to cover
4447         a ctsk_tagdef typespec and !typespec_ok in general.
4448
4449 2010-11-17  Richard Guenther  <rguenther@suse.de>
4450
4451         * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
4452         (gimple_mod_pow2_value_transform): Likewise.
4453         (gimple_mod_subtract_transform): Likewise.
4454
4455 2010-11-17  Richard Guenther  <rguenther@suse.de>
4456
4457         PR lto/46504
4458         * gimple.c (gimple_register_canonical_type): Make sure to only
4459         make type leaders canonical types.
4460
4461 2010-11-17  Michael Matz  <matz@suse.de>
4462
4463         * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
4464         TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
4465         TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
4466         TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
4467         * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
4468         (pass_build_ssa): ... but here.
4469         * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
4470         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
4471         * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
4472         * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
4473         * predict.c (rebuild_frequencies): Ditto.
4474         * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
4475         * emit-rtl.c (verify_rtl_sharing): Ditto.
4476         * tree-cfgcleanup.c (repair_loop_structures): Ditto.
4477         * tree-ssa-live.c (remove_unused_locals): Ditto.
4478         * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
4479         * tree-ssa.c (pass_early_warn_uninitialized,
4480         execute_update_addresses_taken, pass_update_address_taken): Ditto.
4481         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
4482         pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
4483         * passes.c (pass_postreload, execute_todo): Ditto.
4484         * tree-ssanames.c (pass_release_ssa_names): Ditto.
4485
4486 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
4487
4488         * doc/invoke.texi (-dy): Remove.
4489         * langhooks-def.h (lhd_do_nothing_i): Don't declare.
4490         (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
4491         * langhooks.c (lhd_do_nothing_i): Remove.
4492         * langhooks.h (lang_hooks.parse_file): Take no arguments.
4493         * toplev.c (set_yydebug): Remove.
4494         (compile_file): Update call to lang_hooks.parse_file.
4495         (decode_d_option): Don't handle -dy.
4496
4497 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
4498
4499         PR rtl-optimization/46440
4500         * combine.c (update_cfg_for_uncondjump): When changing
4501         an indirect jump into unconditional jump, remove BARRIERs
4502         from bb's footer.
4503
4504 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
4505
4506         * opts.c (target_handle_option): Do not assert that loc ==
4507         UNKNOWN_LOCATION.
4508
4509 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
4510             Richard Guenther  <rguenther@suse.de>
4511
4512         PR middle-end/45838
4513         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
4514         call_may_clobber_ref_p_1): Return true for __sync_* and some
4515         OpenMP builtins that act as threading barriers.
4516
4517 2010-11-17  Richard Guenther  <rguenther@suse.de>
4518
4519         PR tree-optimization/46498
4520         * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
4521
4522 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4523
4524         * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
4525         (xtensa_function_arg_boundary): ...this.
4526         * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
4527         thinko in declaration.
4528         (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
4529         number of parameters to picochip_function_arg_boundary.
4530         (picochip_arg_advance): Likewise.
4531
4532 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4533
4534         PR target/46512
4535         * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
4536         under check for type.
4537
4538 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
4539
4540         * ifcvt.c (dead_or_predicable): Fix typo.
4541
4542 2010-11-16  Richard Henderson  <rth@redhat.com>
4543
4544         * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
4545         * config/s390/s390.opt (mfused-madd): Remove.
4546         * config/s390/s390.c (s390_rtx_costs): Handle FMA.
4547         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
4548         * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
4549         (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
4550
4551 2010-11-16  Richard Henderson  <rth@redhat.com>
4552
4553         * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
4554         * config/rs6000/rs6000.opt (mfused-madd): Remove.
4555         * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
4556         (*altivec_vmaddfp_1): Remove.
4557         (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
4558         (altivec_mulv4sf3): Expand to FMA directly.
4559         (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
4560         (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
4561         * config/rs6000/paired.md (paired_madds0): Use FMA.
4562         (paired_madds1): Likewise.
4563         (*paired_madd): Rename from paired_madd; use FMA.
4564         (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
4565         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
4566         consider TARGET_FUSED_MADD wrt rs6000_recip_control.
4567         (bdesc_3arg): Update CODE_FOR_* for pattern renames.
4568         (rs6000_emit_madd): Use fma_optab.
4569         (rs6000_emit_msub): Use fms_optab.
4570         (rs6000_emit_nmsub): Expand the FMA pattern directly.
4571         * config/rs6000/rs6000.md (FMA_F): New mode iterator.
4572         (*fmasf4_fpr): Rename from fmasf4_fpr.
4573         (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
4574         (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
4575         (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
4576         (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
4577         (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
4578         (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
4579         (*fmadf4_fpr): Rename from fmadf4_fpr.
4580         (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
4581         (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
4582         (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
4583         (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
4584         (fmasf4, fmadf4): Macroize into...
4585         (fma<FMA_F>4): ... here.
4586         (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
4587         (nfma<FMA_F>4, nfms<FMA_F>4): New.
4588         * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
4589         TARGET_FUSED_MADD.
4590         * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
4591         (*vsx_fmadd<mode>4_1): Remove.
4592         (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
4593         (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
4594         (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
4595         (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
4596         (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
4597         (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
4598         (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
4599
4600 2010-11-16  Richard Henderson  <rth@redhat.com>
4601
4602         * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
4603         (fmasf4, fnmadf4, fnmasf4): Likewise.
4604         (unnamed plus+mult insns and splitters): Delete.
4605
4606 2010-11-16  Richard Henderson  <rth@redhat.com>
4607
4608         * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
4609         (fnma<VSF>4): Rename from fnms_<VSF>.
4610         (fms<VSF>4): Rename from fms_<VSF>.
4611         (fma<VDF>4): Rename from fma_<VDF>.
4612         (fms<VDF>4): Rename from fms_<VDF>.
4613         (nfma<VDF>4): Rename from fnma_<VDF>.
4614         (nfms<VDF>4): Rename from fnms_<VDF>.
4615         (fnma<VDF>4, fnms<VDF>4): New expanders.
4616         (floatunsdisf2): Update for the renames.
4617         (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
4618         * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
4619
4620 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
4621
4622         PR rtl-optimization/46490
4623         * combine.c (expand_compound_operation): Fix thinko.
4624
4625 2010-11-16  Richard Henderson  <rth@redhat.com>
4626
4627         PR target/46470
4628         * recog.c (peep2_attempt): Convert frame-related info when possible.
4629         (peep2_fill_buffer): Allow frame-related insns into the buffer.
4630         (peephole2_optimize): Allow peep2_attempt to fail.
4631
4632 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
4633
4634         PR rtl-optimization/46315
4635         * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
4636         * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
4637         extracted from...
4638         * dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
4639         (remove_reg_equal_equiv_notes_for_defs): ...this.
4640         (delete_unmarked_insns): Adjust to above renaming.
4641         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
4642         referring to registers set in the insns being moved, if any.
4643
4644         * df-core.c (df_ref_dump): New function extracted from...
4645         (df_refs_chain_dump): ...here.  Call it.
4646         (df_regs_chain_dump): Likewise.
4647         * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
4648         * df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
4649
4650 2010-11-16  Andreas Schwab  <schwab@linux-m68k.org>
4651
4652         PR rtl-optimization/46395
4653         * postreload.c (reload_combine): Invalidate register use
4654         information on all control flow insns.
4655
4656         * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
4657         LABEL_REF in UNSPEC operand.
4658
4659 2010-11-16  Jan Hubicka  <jh@suse.cz>
4660
4661         * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
4662         when !flag_toplevel_reorder do not remove unless variable is
4663         COMDAT or ARTIFICIAL.
4664         * ipa.c (varpool_can_remove_if_no_refs): ... here.
4665         (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
4666         * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
4667         * varpool.c (decide_is_variable_needed): Do not handle visibility
4668         issues.
4669         (varpool_finalize_decl): Likewise.
4670         (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
4671         update outdated comment on DECL_RTL_SET_P check.
4672
4673 2010-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4674
4675         * config/sol2.h (NM_FLAGS): Define.
4676         * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
4677         * doc/tm.texi: Update.
4678
4679 2010-11-16  Nick Clifton  <nickc@redhat.com>
4680
4681         * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
4682         (msubsf4): Rename to fmssf4, and use fma.
4683         (nmaddsf4): Rename to fnmasf4 and use fma.
4684         (nmsubsf4): Rename to fnmssf4 and use fma.
4685
4686 2010-11-16  Joern Rennecke  <amylaar@spamcop.net>
4687
4688         PR target/44762
4689         * config/score/score3.c (score3_return_in_memory): Constify arguments.
4690         (score3_in_small_data_p, score3_function_value): Likewise.
4691         (score3_trampoline_init): Use LCT_NORMAL.
4692         (score3_print_operand): Initialize code as UNKNOWN.
4693         * config/score/predicates.md (score_load_multiple_operation):
4694         Remove unused variable.
4695         (score_store_multiple_operation): Likewise.
4696         * config/score/score7.c (score7_return_in_memory): Constify arguments.
4697         (score7_in_small_data_p, score7_function_value): Likewise.
4698         (score7_trampoline_init): Use LCT_NORMAL.
4699         (score7_print_operand): Initialize code as UNKNOWN.
4700         * config/score/score3.h (score3_return_in_memory): Update prototype.
4701         (score3_in_small_data_p, score3_function_value): Likewise.
4702         * config/score/score-protos.h (score_function_value): Likewise.
4703         * config/score/score7.h (score7_return_in_memory): Update prototype.
4704         (score7_in_small_data_p, score7_function_value): Likewise.
4705         * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
4706         (score_return_in_memory, score_pass_by_reference): Constify arguments.
4707         (score_output_mi_thunk, score_function_prologue): Don't return a value.
4708         (score_function_epilogue, score_in_small_data_p): Likewise.
4709         (score_option_override, score_asm_trampoline_template): Likewise.
4710         (score_trampoline_init, score_print_operand): Likewise.
4711         (score_print_operand_address, score_prologue): Likewise.
4712         (score_epilogue, score_call, score_call_value): Likewise.
4713         (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
4714         (score_function_arg_advance): Likewise. Make static.
4715         (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
4716         (score_function_arg, score_legitimate_address_p): Make static.
4717         (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
4718         * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
4719         * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
4720         Allow (W) == HOST_BITS_PER_WIDE_INT.
4721
4722         PR java/46386
4723         * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
4724         * config/t-pnt16-warn (java/constants.o-warn): Likewise.
4725
4726 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4727
4728         * config/arc/arc.c: Delete pasto.
4729         * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
4730
4731 2010-11-16  Anatoly Sokolov  <aesok@post.ru>
4732
4733         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
4734         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
4735         * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
4736         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
4737         (mn10300_preferred_reload_class,
4738         mn10300_preferred_output_reload_class): New functions.
4739
4740 2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4741
4742         * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
4743         (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
4744         (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
4745         (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
4746
4747 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4748
4749         * builtins.c (std_gimplify_va_arg_expr): Use
4750         targetm.calls.function_arg_boundary.
4751         * function.c (assign_parms, locate_and_pad_parm): Likewise.
4752         * calls.c (struct arg_data): Update comment.
4753         * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
4754         * target.def (function_arg_boundary): Define.
4755         * targhooks.h (default_function_arg_boundary): Declare.
4756         * targhooks.c (default_function_arg_boundary): Define.
4757         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
4758         TARGET_FUNCTION_ARG_BOUNDARY.
4759         (FUNCTION_ARG_BOUNDARY): Delete.
4760         (TARGET_FUNCTION_ARG_BOUNDARY): New.
4761         * doc/tm.texi: Regenerate.
4762         * system.h (FUNCTION_ARG_BOUNDARY): Poison.
4763         * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
4764         * config/arc/arc.c (arc_function_arg_boundary): Define.
4765         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4766         * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
4767         * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
4768         * config/arm/arm.c (arm_needs_doubleword_align): Make static.
4769         (arm_function_arg_boundary): Define.
4770         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4771         * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
4772         * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
4773         * config/frv/frv.c (frv_function_arg_boundary): Make static.
4774         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4775         * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
4776         * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
4777         * config/i386/i386.c (ix86_function_arg_boundary): Make static.
4778         (ix86_compat_function_arg_boundary): Take and return unsigned int.
4779         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4780         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
4781         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
4782         * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
4783         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4784         * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
4785         * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
4786         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4787         * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
4788         * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
4789         * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
4790         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4791         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
4792         * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
4793         * config/mips/mips.c (mips_function_arg_boundary): Make static.
4794         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4795         * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
4796         * config/pa/pa.c (pa_function_arg_boundary): Define.
4797         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4798         * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
4799         * config/picochip/picochip-protos.h
4800         (picochip_get_function_arg_boundary): Delete.
4801         * config/picochip/picochip.c (picochip_get_function_arg_boundary):
4802         Rename to...
4803         (picochip_function_arg_boundary): ...this.  Make static.
4804         (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
4805         (picochip_arg_advance): Adjust.
4806         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4807         * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
4808         * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
4809         * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
4810         (rs6000_function_arg_boundary): ...this.  Make static.
4811         (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
4812         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4813         * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
4814         * config/rx/rx.c (rx_function_arg_boundary): Define.
4815         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4816         * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
4817         * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
4818         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4819         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
4820         * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
4821         * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
4822         (xtensa_function_arg_boundary): ...this.  Make static.
4823         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4824
4825 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4826
4827         * expr.c (alignment_for_piecewise_move): New function.
4828         (widest_int_mode_for_size): New function.
4829         (move_by_pieces, move_by_pieces_ninsns): Call them.
4830         (can_store_by_pieces, store_by_pieces_1): Likewise.
4831
4832 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4833
4834         * gcc.c (char_p): Define.  Define a VEC of it.
4835         (n_linker_options, n_assembler_options, n_preprocessor_options):
4836         Delete.
4837         (linker_options, assembler_options, preprocessor_options): Convert
4838         to a VEC.
4839         (add_preprocessor_option): Adjust.
4840         (add_assembler_option): Adjust.
4841         (add_linker_option): Adjust.
4842         (do_specs_vec): New function.
4843         (do_spec_1): Call it.  Adjust for new types.
4844
4845 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4846
4847         * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
4848         (sreal.o, statistics.o, stringpool.o): Likewise.
4849
4850 2010-11-16  Richard Guenther  <rguenther@suse.de>
4851
4852         PR tree-optimization/44545
4853         * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
4854         statements are not reassociatable.
4855         (reassociate_bb): Likewise.
4856
4857 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4858
4859         * bitmap.c: Delete unnecessary includes.
4860         * ebitmap.c: Likewise.
4861         * et-forest.c: Likewise.
4862         * sreal.c: Likewise.
4863         * statistics.c: Likewise.
4864         * stringpool.c: Likewise.
4865         * double-int.c: Add comment for inclusion of tm.h.
4866
4867 2010-11-16  Richard Guenther  <rguenther@suse.de>
4868
4869         * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
4870         (visit_nary_op): ... this.
4871         (visit_binary_op): Remove.
4872         (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
4873
4874 2010-11-16  Richard Guenther  <rguenther@suse.de>
4875
4876         PR middle-end/45172
4877         * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
4878
4879 2010-11-16  Nick Clifton  <nickc@redhat.com>
4880
4881         * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
4882         record is packed.
4883
4884 2010-11-15  Richard Henderson  <rth@redhat.com>
4885
4886         * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
4887         WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
4888         DOT_PROD_EXPR.
4889
4890 2010-11-15  Richard Henderson  <rth@redhat.com>
4891
4892         * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
4893         from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
4894         fma rtx_code.
4895
4896 2010-11-15  Richard Henderson  <rth@redhat.com>
4897
4898         * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
4899         and *mulsubsf4 respectively.  Use fma rtx_code.
4900
4901 2010-11-15  Joseph Myers  <joseph@codesourcery.com>
4902
4903         * gcc.c: Include "vec.h".
4904         (argbuf): Make into a VEC.
4905         (argbuf_length, argbuf_index): Remove.
4906         (alloc_args, clear_args, store_arg, execute, insert_wrapper,
4907         do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
4908         compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
4909         * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
4910         (gcc.o): Depend on $(VEC_H).
4911
4912 2010-11-15  Richard Henderson  <rth@redhat.com>
4913
4914         * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
4915         via FMA if unsafe math.
4916         (insert_var_expansion_initialization): Handle FMA.
4917         (combine_var_copies_in_loop_exit): Likewise.
4918
4919 2010-11-15  Richard Henderson  <rth@redhat.com>
4920
4921         * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
4922         * config/ia64/ia64.opt: Remove mfused-madd.
4923         * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
4924         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
4925         * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
4926         * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
4927         * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
4928         * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
4929         (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
4930         (fmav2sf4): Rename from fpma; use FMA code.
4931         (fmsv2sf4): Rename from fpms; use FMA code.
4932         (fnmav2sf4): Rename from *fpnma; use FMA code.
4933         * config/ia64/ia64.md (MODE_SDF): New iterator.
4934         (suffix): New mode attribute.
4935         (*maddsf4, *msubsf4, *nmaddsf4): Remove.
4936         (fmssf4): Rename from *fmssf4.
4937         (fnmasf4): Rename from *nfmasf4.
4938         (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
4939         (*nmadddf4, *nmadddf4_truncsf): Remove.
4940         (fmsdf4): Rename from *fmsdf4.
4941         (fnmadf4): Rename from *nfmadf4.
4942         (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
4943         (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
4944         (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
4945         (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
4946         (fmsxf4): Rename from *fmsxf4.
4947         (fnmaxf4): Rename from *nfmaxf4.
4948         (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
4949         (*fnmaxf_trunc_<MODE_SDF>): New.
4950
4951 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
4952
4953         PR tree-optimization/46461
4954         * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
4955         a gimple val.
4956
4957 2010-11-15  Ian Lance Taylor  <iant@google.com>
4958
4959         * godump.c: New file.
4960         * common.opt (fdump-go-spec=): New option.
4961         * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
4962         (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
4963         (TYPE_SYMTAB_IS_DIE): Define.
4964         (struct tree_type): Change GTY for symtab field to use
4965         TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
4966         to pick the union field.
4967         * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
4968         (dump_go_spec_init): Declare.
4969         * toplev.c (process_options): Handle flag_dump_go_spec.
4970         * debug.c: Include "tree.h".
4971         (do_nothing_debug_hooks): Set tree_type_symtab_field.
4972         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
4973         * dbxout.c (dbx_debug_hooks): Likewise.
4974         (xcoff_debug_hooks): Likewise.
4975         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
4976         * sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
4977         SDB_DEBUGGING_INFO is not defined.
4978         * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
4979         (Overall Options): Document -fdump-go-spec.
4980         * Makefile.in (OBJS-common): Add godump.o.
4981         (debug.o): Add dependency on $(TREE_H).
4982         (godump.o): New target.
4983         (GTFILES): Add $(srcdir)/godump.c.
4984
4985 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
4986
4987         PR debug/46095
4988         * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
4989         marking r11 set RTX_FRAME_RELATED_P if offset is too large for
4990         style < 0, add REG_FRAME_RELATED_EXPR.
4991
4992         PR debug/46387
4993         * rtl.h (vt_equate_reg_base_value): New prototype.
4994         * alias.c (vt_equate_reg_base_value): New function.
4995         * var-tracking.c (vt_init_cfa_base): Use it.
4996
4997 2010-11-15  Jan Hubicka  <jh@suse.cz>
4998             Diego Novillo  <dnovillo@google.com>
4999
5000         PR lto/41528
5001         * doc/lto.texi: Add.
5002         * doc/gccint.texi: Add reference to lto.texi.
5003         * doc/invoke.texi: Update user documentation for LTO.
5004         Move internal flags to lto.texi
5005
5006 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
5007
5008         * c-typeck.c (build_unary_op): Use
5009         objc_build_incr_expr_for_property_ref to build the pre/post
5010         increment/decrement of an Objective-C property ref, and skip the
5011         lvalue_or_else check in that case.
5012
5013 2010-11-15  Martin Jambor  <mjambor@suse.cz>
5014
5015         PR tree-optimization/46349
5016         * tree-sra.c (contains_bitfld_comp_ref_p): New function.
5017         (contains_vce_or_bfcref_p): Likewise.
5018         (sra_modify_assign): Use them.
5019
5020 2010-11-15  Richard Guenther  <rguenther@suse.de>
5021
5022         PR tree-optimization/46467
5023         * tree-ssa-structalias.c (do_structure_copy): Properly treat
5024         variables without subvars.
5025
5026 2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>
5027
5028         * config/picochip/picochip.c (file header): Picochip name change.
5029         * config/picochip/picochip.md (file header): Likewise.
5030         * config/picochip/predicates.md (file header): Likewise.
5031         * config/picochip/dfa_space.md (file header): Likewise.
5032         * config/picochip/dfa_speed.md (file header): Likewise.
5033         * config/picochip/picochip.h(file header): Likewise.
5034         * config/picochip/constraints.md (file header): Likewise.
5035         * config/picochip/picochip-protos.h (file header): Likewise.
5036         * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
5037         * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
5038         * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
5039         * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
5040         * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
5041         * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
5042         * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
5043         * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
5044         * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
5045         * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
5046         * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
5047         * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
5048         * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
5049         * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
5050
5051 2010-11-15  Richard Guenther  <rguenther@suse.de>
5052
5053         PR bootstrap/46474
5054         * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
5055
5056 2010-11-15  Nick Clifton  <nickc@redhat.com>
5057
5058         * config/stormy16/stormy16.c (direct_return): Do not generate a
5059         direct return for interrupt handlers.
5060
5061 2010-11-15  Joern Rennecke  <amylaar@spamcop.net>
5062
5063         * Makefile.in (tm.texi): Replace with rule for:
5064         ($(srcdir)/doc/tm.texi).
5065         (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
5066         $(srcdir)/doc/tm.texi .
5067         (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
5068         tm.texi .
5069
5070         PR target/46427
5071         * config/m32r/m32r.c: Remove unused variables frame_size and insn.
5072
5073         PR bootstrap/45444
5074         * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
5075         (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
5076
5077         PR target/46432
5078         * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
5079
5080 2010-11-15  Richard Guenther  <rguenther@suse.de>
5081
5082         PR lto/44150
5083         * lto-opts.c (lto_write_options): Write -fexceptions even if
5084         not set by the user.
5085
5086 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
5087
5088         PR c/46462
5089         * c-decl.c (declspecs_add_type): Make variables with error types
5090         integers.
5091         * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
5092         do not start a declaration before an Objective-C foreach.
5093         (c_parser_declaration_or_fndef): Improve recovery after unknown
5094         type name.
5095         (c_parser_for_statement): Hoist entrance of "foreach context"
5096         before ifs, add corresponding reset where it was missing.  Do
5097         not set objc_could_be_foreach_context for C.
5098
5099 2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>
5100
5101         PR tree-optimization/45722
5102         * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
5103         this is a reference to a component.
5104         * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
5105         (ipa_note_param_call): Adjust comment.
5106
5107 2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>
5108
5109         * config/mips/mips.c (machine_function): Remove
5110         initialized_mips16_gp_pseudo_p.
5111         (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
5112         detect whether a pseudo has already been created.  Unconditionally
5113         create a new one if not.
5114         (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
5115         expanding to rtl.  Create a new pseudo otherwise, if allowed.
5116
5117 2010-11-13  Richard Earnshaw  <rearnsha@arm.com>
5118
5119         PR target/43440
5120         * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
5121         * tm.texi: Regenerated.
5122         * output.h (decode_reg_name_and_count): Declare.
5123         * varasm.c (decode_reg_name_and_count): New function.
5124         (decode_reg_name): Reimplement using decode_reg_name_and_count.
5125         * reginfo.c (fix_register): Use decode_reg_name_and_count and
5126         iterate over all regs used.
5127         * stmt.c (expand_asm_operands): Likewise.
5128         * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
5129         (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
5130         multiple machine registers.
5131
5132 2010-11-13  Eric Botcazou  <ebotcazou@adacore.com>
5133
5134         * stor-layout.c (place_union_field): Do not put location information
5135         on offset expressions.
5136         (place_field): Likewise.
5137         (finalize_record_size): Likewise on size expressions.
5138         (finalize_type_size): Likewise.
5139         (layout_type): Likewise.
5140
5141 2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
5142
5143         PR debug/42889
5144         * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
5145         * df-core.c (df_set_bb_dirty_nonrl): Remove.
5146         * df.h (df_set_bb_dirty_nonlr): Likewise.
5147
5148 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
5149
5150         * config/mips/mips.md (call_internal): Pass curr_insn to
5151         mips_split_call.
5152         (call_internal_direct): Ditto.
5153         (call_value_internal): Ditto.
5154         (call_value_internal_direct): Ditto.
5155         (call_value_multiple_internal): Ditto.
5156         * config/mips/mips.c (mips_split_call): Do not copy
5157         CALL_INSN_FUNCTION_USAGE here.
5158
5159 2010-11-13  Mingming Sun  <mingm.sun@gmail.com>
5160
5161         * doc/invoke.texi (MIPS Options): Add loongson3a processor.
5162         * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
5163         (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
5164         * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
5165         (TUNE_LOONGSON_3A): Define.
5166         (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
5167         (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
5168         * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
5169         (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
5170         (mips_rtx_cost_data): Add Loongson-3A.
5171
5172 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
5173
5174         * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
5175         switches.
5176
5177 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
5178
5179         * dwarf2out.c (macinfo_entry): New struct.
5180         (output_comp_unit): Emit the section start label here and flag that we
5181         will emit an info section.
5182         (dwarf2out_start_source_file): Save data in a macinfo entry rather than
5183         emitting directly.
5184         (dwarf2out_end_source_file): Likewise.
5185         (dwarf2out_define): Likewise.
5186         (dwarf2out_undef): Likewise.
5187         (output_macinfo): New.
5188         (dwarf2out_init): Do not emit debug section switches here, allocate a
5189         vec for macinfo, when required.
5190         (dwarf2out_finish): First switch to debug_abbrev_section here.
5191         debug_line_section,  debug_macinfo_section, Likewise.
5192         Check that the pubtypes table has at least one unpruned entry before
5193         trying to emit it.
5194
5195 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
5196
5197         PR c/20385
5198         * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
5199         (c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
5200         token lookahead.
5201         (c_parser_compound_statement_nostart, c_parser_label,
5202         c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
5203         (c_parser_declaration_or_fndef): Detect the case now matched by
5204         c_parser_next_tokens_start_declaration, give error and correct it.
5205
5206 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
5207
5208         * c-tree.h (enum c_typespec_kind): Add ctsk_none.
5209         (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
5210         with typespec_kind.
5211         * c-decl.c (build_null_declspecs): Initialize typespec_kind.
5212         (shadow_tag_warned, check_compound_literal_type): Adjust
5213         uses of tag_defined_p.
5214         (declspecs_add_type): Set typespec_kind.
5215         * c-parser.c (c_parser_declaration_or_fndef,
5216         c_parser_declspecs, c_parser_struct_declaration,
5217         c_parser_parameter_declaration, c_parser_type_name,
5218         c_parser_objc_diagnose_bad_element_prefix): Adjust uses
5219         of type_seen_p.
5220         * c-typeck.c (c_cast_expr): Use typespec_kind instead of
5221         tag_defined_p, pass ctsk_firstref through.
5222
5223 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
5224
5225         * c-format.c (enum format_specifier_kind, kind_descriptions): New.
5226         (struct format_wanted_type): Replace field "name" with "kind", add
5227         "format_start" and "format_length".
5228         (check_format_info_main): Fill in new fields.  Fill in
5229         FORMAT_WANTED_TYPES even for missing arguments.  Move checks
5230         after the final NUL outside the while loop.  Do not include
5231         width and precision modifiers in the format_start/format_length
5232         of the main format.
5233         (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
5234         arguments.  Compute WANTED_TYPE first so that format_type_warning
5235         can be called for missing arguments.  Adjust calls to
5236         format_type_warning.
5237         (format_type_warning): Fetch as much information as possible
5238         from format_wanted_type.  Adjust printing now that every
5239         warning has a "descr", as well as for missing argument warnings
5240         and to include % sign for format specifiers.
5241
5242 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
5243
5244         PR rtl-optimization/46204
5245         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
5246         Update all callers.  Do not recompute topological order.  Adjust
5247         fallthrough edges following a degenerate conditional jump.
5248
5249 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
5250
5251         * opts-common.c (control_warning_option): New.
5252         * opts.c (set_default_handlers): New.
5253         (decode_options): Use set_default_handlers and
5254         control_warning_option.
5255         (common_handle_option): Update call to enable_warning_as_error.
5256         (enable_warning_as_error): Take gcc_options parameters.  Use
5257         control_warning_option.
5258         * opts.h (set_default_handlers, control_warning_option): Declare.
5259
5260 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
5261
5262         * Makefile.in (OPTS_H): Define.
5263         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
5264         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
5265         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
5266         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
5267         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
5268         * gcc.c (driver_handle_option): Take location_t parameter.
5269         (process_command, do_self_spec): Update calls to
5270         read_cmdline_option.
5271         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
5272         * langhooks.c (lhd_handle_option): Take location_t parameter.
5273         * langhooks.h (handle_option): Take location_t parameter.
5274         * lto-opts.c (lto_reissue_options): Update call to set_option.
5275         * opts-common.c (handle_option): Make static.  Take location_t
5276         parameter and pass it to other functions.
5277         (handle_generated_option): Take location_t parameter and pass it
5278         to other functions.
5279         (read_cmdline_option): Take location_t parameter and pass it to
5280         other functions.  Use warning_at and error_at.
5281         (set_option): Take location_t parameter and pass it to other
5282         functions.
5283         * opts.c (common_handle_option): Take location_t parameter and
5284         pass it to other functions.
5285         (enable_warning_as_error): Make static.  Take location_t parameter
5286         and pass it to other functions.
5287         (lang_handle_option): Take location_t parameter and pass it to
5288         other functions.
5289         (target_handle_option): Take location_t parameter.
5290         (read_cmdline_options, maybe_default_option,
5291         maybe_default_options, default_options_optimization,
5292         decode_options): Take location_t parameter and pass it to other
5293         functions.
5294         * opts.h: Include input.h.
5295         (struct cl_option_handler_func, decode_options, set_option,
5296         handle_generated_option, read_cmdline_option): Take location_t
5297         parameters.
5298         (handle_option, enable_warning_as_error): Remove.
5299         * toplev.c (toplev_main): Update call to decode_options.
5300
5301 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
5302
5303         * graphite-cloog-util.c (oppose_constraint,
5304         cloog_matrix_to_ppl_constraint,
5305         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
5306         CLooG isl uses unsigned integers.  This triggered a warning.
5307
5308 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
5309
5310         PR target/46438
5311         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
5312         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
5313         (xtensa_function_arg_1): De-constify cum.
5314         (xtensa_expand_prologue): Use add_reg_note.
5315
5316         PR target/46435
5317         * config/cris/cris.c (saved_regs_mentioned): Delete.
5318         (cris_reload_address_legitimized): Cast itype to enum reload_type.
5319         Remove unused variable op0p.
5320         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
5321         (cris_emit_movem_store): Use add_reg_note.
5322
5323         PR bootstrap/46456
5324         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
5325
5326 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
5327
5328         * function.c (expand_function_end): Set the locator of the prologue on
5329         the stack checking insns.
5330
5331 2010-11-12  Richard Henderson  <rth@redhat.com>
5332
5333         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
5334         * config/xtensa/xtensa.opt (mfused-madd): Remove.
5335         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
5336         MASK_FUSED_MADD.
5337         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
5338         (fnmasf4): Rename from mulsubsf3; use fma.
5339
5340 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
5341             Richard Henderson  <rth@redhat.com>
5342
5343         PR target/46428
5344         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
5345         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
5346         comparison.
5347
5348 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
5349
5350         * opts-common.c (decode_cmdline_option): Initialize separate_args.
5351
5352 2010-11-12  Jan Hubicka  <jh@suse.cz>
5353
5354         * doc/invoke.texi (early-inlining-insns): Update default.
5355         * params.def (early-inlining-insns): Default to 10.
5356
5357 2010-11-12  Olivier Hainque  <hainque@adacore.com>
5358
5359         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
5360
5361 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5362
5363         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
5364         (SUPPORTS_INIT_PRIORITY): Define.
5365
5366 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
5367
5368         PR target/46430
5369         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
5370         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
5371         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
5372         (avr_device_to_devicelib): Likewise.
5373         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
5374         into block.
5375         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
5376         (zero_extendhidi2, zero_extendsidi2): Likewise.
5377         * config/avr/avr.c (avr_num_arg_regs): Constify type.
5378         (avr_return_addr_rtx): De-constify tem.
5379         (avr_rotate_bytes): Move declarations to start of block.
5380         Don't use variable length array.  Put nested if/else into block.
5381
5382         PR rtl-optimization/46433
5383         * var-tracking.c: Include tm_p.h .
5384
5385         PR bootstrap/44756
5386         PR build/44767
5387         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
5388         should be unsigned.
5389         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
5390         * doc/tm.texi: Regenerate.
5391
5392         PR target/46412
5393         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
5394         * config/bfin/bfin.c: Include sel-sched.h .
5395         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
5396         (expand_interrupt_handler_prologue): Remove unused variable insn.
5397         (bfin_load_pic_reg): Likewise.
5398         (bfin_rtx_costs): Make code / outer_code variables of type
5399         enum rtx_code, copied from re-named parameters.
5400         (bfin_local_alignment): Change align argument and return type
5401         to unsigned.
5402         (bfin_adjust_cost): Remove unused variable insn_type.
5403         Declare variables at start of block.
5404         (struct loop_info): Rename to...
5405         (struct loop_info_d).
5406         (workaround_rts_anomaly): Change type of icode to int.
5407         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
5408         with int-typed variable.
5409         (note_np_check_stores): Likewise.
5410         (trapping_loads_p): Remove unused variable pat.
5411         (bfin_expand_binop_builtin): Use expand_normal.
5412         (bfin_expand_unop_builtin): Likewise.
5413         (bfin_expand_builtin): Likewise.  Set tmode before use.
5414
5415         PR middle-end/44769
5416         * final.c (split_double): Don't use BITS_PER_WORD directly in
5417         shift count.
5418
5419         PR target/46431
5420         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
5421         assignment.
5422
5423         PR target/46450
5424         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
5425         Use add_reg_note.
5426         (xstormy16_function_arg): Dereference cum.
5427         (xstormy16_expand_builtin): Use expand_normal.
5428         Change type of omode to enum machine_mode.
5429         (combine_bnp): Rename and to and_insn.
5430
5431         PR target/46437
5432         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
5433         localreg.
5434
5435 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
5436
5437         PR debug/46375
5438         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
5439
5440 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
5441
5442         PR lto/46376
5443         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
5444
5445 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
5446
5447         PR c/44782
5448         * common.opt (fmax-errors=): New option.
5449         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
5450         * diagnostic.h (struct diagnostic_context): Add max_errors field.
5451         * diagnostic.c (diagnostic_initialize): Initialize it.
5452         (diagnostic_action_after_output): Exit if more than max_errors
5453         have been output.
5454         * doc/invoke.texi (Warning Options): Add -fmax-errors.
5455         (-fmax-errors): Document.
5456
5457 2010-11-11  Richard Henderson  <rth@redhat.com>
5458
5459         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
5460
5461 2010-11-11  Richard Henderson  <rth@redhat.com>
5462
5463         * config/fused-madd.opt: New file.
5464         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
5465         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
5466         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
5467         * config/i386/i386.opt (mfused-madd): Remove.
5468         * config/i386/sse.md (split_fma): Remove.
5469         (split_fms, split_fnma, split_fnms): Remove.
5470
5471 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
5472
5473         PR target/46088
5474         * config/i386/i386.md (*ashl<mode>3_cconly,
5475         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
5476         change nonimmediate_operand predicate to register_operand.
5477
5478 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
5479
5480         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
5481
5482 2010-11-11  Jan Hubicka  <jh@suse.cz>
5483
5484         * opts.c (finish_options): Do not error on -flto-partition alone.
5485
5486         * doc/invoke.texi (-fwhopr): Merge into -flto section.
5487         (-flto-partition): Document none.
5488         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
5489         * lto-wrapper.c: Update comment.
5490         (run_gcc): Update LTO option parsing.
5491         * opts.c (finish_options): add support -flto-partition=none
5492         (common_handle_option): Remove fwhopr.
5493         * common.opt: Turn fwhopr into flto.
5494         * collect2.c (main): Update option handling.
5495         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
5496         * ipa-split.c (execute_split_functions): Remove flag_whopr.
5497         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
5498         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
5499         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
5500
5501 2010-11-11  Jan Hubicka  <jh@suse.cz>
5502
5503         PR tree-optimize/40436
5504         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
5505         (eliminated_by_inlining_prob): ... this one; return 50% probability
5506         for SRA.
5507         (estimate_function_body_sizes): Update use of
5508         eliminated_by_inlining_prob; estimate static function size
5509         for 2 instructions.
5510
5511 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
5512
5513         PR target/44749
5514         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
5515         declare.  Change type of argument four to type int.
5516         (mep_secondary_input_reload_class): Returns enum reg_class.
5517         (mep_secondary_output_reload_class): Likewise.
5518         (mep_function_value): Change types of arguments to cont_tree.
5519         * config/mep/mep.c (mep_legitimize_reload_address): Change type of
5520         argument four to type int.
5521         (mep_secondary_input_reload_class): Returns enum reg_class.
5522         (mep_secondary_output_reload_class): Likewise.
5523         (mep_function_value): Change types of arguments to cont_tree.
5524         * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
5525         mep_regno_reg_class to enum reg_class.
5526
5527 2010-11-11  Richard Henderson  <rth@redhat.com>
5528
5529         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
5530         that the target has the exact fma operation that we matched.
5531
5532 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
5533
5534         * reginfo.c (fix_register): Avoid inserting English word in
5535         diagnostic sentence.  Use %qs for quoting and %'.
5536
5537 2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
5538
5539         * config/i386/driver-i386.c (host_detect_local_cpu): Support
5540         Intel processor family 6, model 0x2c.
5541
5542 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
5543
5544         * opts.c (warning_as_error_callback,
5545         register_warning_as_error_callback): Remove.
5546         (enable_warning_as_error): Don't use warning_as_error_callback.
5547         * opts.h (register_warning_as_error_callback): Remove.
5548
5549 2010-11-11  Richard Henderson  <rth@redhat.com>
5550
5551         * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
5552         in between the MULT and the PLUS/MINUS.
5553
5554 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
5555
5556         PR middle-end/46388
5557         * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
5558         BLKmode mode for it.
5559         (expand_expr_real_1): Similarly for op0.
5560
5561 2010-11-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5562
5563         * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
5564         Document optional target selector.
5565
5566 2010-11-11  Dave Korn  <dave.korn.cygwin@gmail.com>
5567
5568         * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
5569         assembling high and low parts of size if not using 32-bit HWINT; else
5570         use DECL_SIZE_UNITS, not DECL_SIZE.
5571
5572 2010-11-11  Martin Jambor  <mjambor@suse.cz>
5573
5574         PR tree-optimization/46383
5575         * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
5576         offsets.
5577         (compute_complex_ancestor_jump_func): Likewise.
5578         * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
5579
5580 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
5581
5582         PR debug/46150
5583         * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
5584         true if expr1->hash != expr2->hash.
5585
5586 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
5587
5588         * cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
5589         diagnostics with lowercase letters.
5590         * cgraphunit.c (verify_cgraph_node): Start diagnostics with
5591         lowercase letters.
5592         * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
5593         diagnostic.
5594         * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
5595         * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
5596         lowercase letters.
5597         * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
5598         Remove trailing ' ' from diagnostic.
5599         * config/avr/avr.c (print_operand_address): Start diagnostic with
5600         a lowercase letter and remove trailing '.'.
5601         * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
5602         * config/bfin/bfin.c (bfin_option_override): Start diagnostics
5603         with lowercase letters.  Use %' in diagnostics.  Remove trailing
5604         '.' from diagnostics.
5605         (bfin_handle_longcall_attribute): Use %' in diagnostic.
5606         * config/cris/cris.c (cris_split_movdx,
5607         cris_expand_pic_call_address): Start diagnostics with lowercase
5608         letters.
5609         (cris_asm_output_label_ref): Use %' in diagnostic.
5610         * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
5611         letter.
5612         * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
5613         lowercase letter.
5614         * config/darwin-c.c (version_as_macro): Start diagnostic with a
5615         lowercase letter.
5616         * config/darwin-driver.c (darwin_default_min_version): Use %' in
5617         diagnostic.
5618         * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
5619         diagnostic.
5620         * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
5621         * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
5622         diagnostics.
5623         * config/i386/i386.c (ix86_option_override_internal): Write
5624         diagnostic as a single sentence without trailing '.'.  Use %' in
5625         diagnostics.
5626         (ix86_function_sseregparm, classify_argument): Start diagnostics
5627         with lowercase letters.
5628         (ix86_expand_prologue): Use %' in diagnostic.
5629         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
5630         diagnostic.
5631         * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
5632         lowercase letter.
5633         * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
5634         diagnostic.
5635         * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
5636         * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
5637         '`' in help text.
5638         * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
5639         lowercase letter.
5640         * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
5641         lowercase letters.
5642         * config/microblaze/microblaze.c (microblaze_handle_option):
5643         Remove trailing '.' from diagnostic.
5644         (print_operand): Start diagnostic with a lowercase letter.
5645         * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
5646         lowercase letters.  Avoid '`' in diagnostics.
5647         * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
5648         lowercase letters.  Avoid '`' in diagnostics.
5649         * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
5650         lowercase letters.  Avoid '`' in diagnostics.
5651         * config/picochip/picochip.c (picochip_option_override,
5652         picochip_emit_save_register, picochip_function_arg,
5653         picochip_output_label, picochip_output_internal_label,
5654         picochip_asm_output_opcode, picochip_output_cbranch,
5655         picochip_output_compare, picochip_output_branch,
5656         picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
5657         diagnostics. Start diagnostics with lowercase letters.  Use %' in
5658         diagnostics.
5659         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
5660         "SPE" capitalization.  Start diagnostic with a lowercase letter.
5661         (rs6000_handle_option): Start diagnostics with lowercase letters.
5662         (def_builtin): Remove trailing '.' from diagnostic.
5663         (rs6000_savres_routine_name): Start diagnostic with a lowercase
5664         letter.
5665         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
5666         diagnostic.
5667         * config/rx/rx.c (rx_handle_option): Start diagnostic with a
5668         lowercase letter.
5669         * config/s390/s390.c (s390_option_override) Start diagnostics with
5670         lowercase letters.  Use %' in diagnostic.
5671         * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
5672         lowercase letters.
5673         * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
5674         diagnostic.
5675         * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
5676         diagnostic.
5677         * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
5678         diagnostic.
5679         * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
5680         * config/spu/spu.c (spu_option_override): Start diagnostics with
5681         lowercase letters.  Use %qs for quoting in diagnostics.
5682         (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
5683         Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
5684         * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
5685         from diagnostic.
5686         * convert.c (convert_to_integer, convert_to_vector): Use %' in
5687         diagnostics.
5688         * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
5689         letter and use "cannot" spelling.
5690         * expmed.c (extract_fixed_bit_field): Start diagnostic with
5691         lowercase letter and format as a single sentence without '.'.
5692         * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
5693         Use %' in diagnostics.
5694         * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
5695         Use %' in diagnostics.
5696         * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
5697         Use %' in diagnostics.
5698         * graph.c (clean_graph_dump_file): Use %' in diagnostic.
5699         * graphite-poly.c (graphite_read_scop_file): Start diagnostics
5700         with lowercase letters and remove tailing '.' and '\n'.
5701         * lto-cgraph.c (input_profile_summary): Start diagnostic with
5702         lowercase letter and remove trailing '.'.
5703         (input_cgraph): Start diagnostics with lowercase letters and
5704         remove trailing '\n'.
5705         * opts.c (finish_options, common_handle_option): Start diagnostics
5706         with lowercase letters and remove trailing '.'.  Fix typo in
5707         diagnostic.
5708         * passes.c (position_pass): Start diagnostic with lowercase letter.
5709         * plugin.c (add_new_plugin, parse_plugin_arg_opt,
5710         register_callback, try_init_one_plugin): Start diagnostics with
5711         lowercase letters.
5712         * reload1.c (spill_failure): Use %' in diagnostic.
5713         (gen_reload): Start diagnostic with a lowercase letter.
5714         * stor-layout.c (place_field): Start diagnostic with a lowercase
5715         letter.
5716         * toplev.c (open_auxiliary_file): Use %' in diagnostic.
5717         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
5718         verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
5719         Start diagnostics with lowercase letters, remove trailing '.' and
5720         use %' in diagnostics.
5721         * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
5722         (verify_ssa): Don't split diagnostic across two error calls.
5723         Spell out "number" and use %' in diagnostic.
5724         * value-prof.c (visit_hist, check_counter): Start diagnostics with
5725         lowercase letters.
5726
5727 2010-11-10  Uros Bizjak  <ubizjak@gmail.com>
5728
5729         PR middle-end/46419
5730         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
5731         (_mm_cvtpu16_ps): Ditto.
5732
5733 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
5734
5735         * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
5736         warn_larger_than, larger_than_size, warn_frame_larger_than,
5737         frame_larger_than_size, flag_gen_aux_info, flag_shlib,
5738         default_visibility, flag_tls_default): New Variable declarations.
5739         (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
5740         falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
5741         (v): Declare as Common and document here.
5742         * flags.h (default_visibility, flag_generate_lto,
5743         warn_larger_than, larger_than_size, warn_frame_larger_than,
5744         frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
5745         flag_shlib, flag_excess_precision_cmdline): Remove.
5746         (set_Wstrict_aliasing): Update prototype.
5747         * gcc.c (verbose_flag): Remove.
5748         (driver_handle_option): Add diagnostic_context parameter.  Don't
5749         handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
5750         incrementing it.
5751         * opts-common.c (handle_option): Pass dc to handler.
5752         * opts.c (warn_larger_than, larger_than_size,
5753         warn_frame_larger_than, frame_larger_than_size,
5754         default_visibility): Remove.
5755         (common_handle_option): Add diagnostic_context parameter.
5756         (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
5757         gcc_options parameters.
5758         (lang_handle_option, target_handle_option, read_cmdline_options,
5759         decode_options): Add diagnostic_context parameters.
5760         (finish_options): Access option state through opts pointer where
5761         possible.
5762         (common_handle_option): Access option state through opts pointer
5763         where possible.  Do not set local static variable verbose.  Do not
5764         explicitly handle OPT_v, OPT_Wstrict_aliasing_,
5765         OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
5766         OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
5767         OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
5768         OPT_fwhopr_.  Do not explicitly set .opt file variables for
5769         OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
5770         (set_Wstrict_aliasing): Add gcc_options parameter.
5771         * opts.h (struct cl_option_handler_func): Add diagnostic_context
5772         parameter to handler.
5773         (decode_options): Add diagnostic_context parameter.
5774         * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
5775         asm_file_name, flag_generate_lto, flag_gen_aux_info,
5776         aux_info_file_name, flag_shlib, flag_tls_default,
5777         flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
5778         (toplev_main): Pass global_dc to decode_options.
5779         * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
5780         aux_info_file_name, asm_file_name): Remove.
5781         * tree.h (flag_tls_default): Remove.
5782
5783 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
5784
5785         PR target/45986
5786         * config/sparc/sparc.c (sparc_delegitimize_address): New function.
5787         (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
5788
5789 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
5790
5791         * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
5792         (x86_64-*-*): Likewise.
5793         * config/i386/cpuid.h: Define TBM bit.
5794         * config/i386/driver-i386.c (host_detect_local_cpu): Define
5795         and set has_tbm.
5796         * config/i386/i386-c.c (ix86_target_macros_internal): Check
5797         isa_flag for TBM.
5798         * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
5799         (OPTION_MASK_ISA_TBM_UNSET): New.
5800         (ix86_handle_option): Handle -mtbm.
5801         (isa_opts): Add -mtbm.
5802         (enum pta_flags): Add PTA_TBM.
5803         (ix86_option_override_internal): Add TBM support.
5804         (ix86_valid_target_attribute_inner_p): Handle -mtbm.
5805         (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
5806         (IX86_BUILTIN_BEXTRI64): Likewise.
5807         (bdesc_args): Add TBM intrinsics.
5808         (ix86_expand_builtin): Add TBM specific case.
5809         * config/i386/i386.h (TARGET_TBM): New for TBM.
5810         * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
5811         (tbm_bextri_<mode>): Likewise.
5812         (*tbm_blcfill_<mode>): Likewise.
5813         (*tbm_blci_<mode>): Likewise.
5814         (*tbm_blcic_<mode>): Likewise.
5815         (*tbm_blcmsk_<mode>): Likewise.
5816         (*tbm_blcs_<mode>): Likewise.
5817         (*tbm_blsfill_<mode>): Likewise.
5818         (*tbm_blsic_<mode>): Likewise.
5819         (*tbm_t1mskc_<mode>): Likewise.
5820         (*tbm_tzmsk_<mode>): Likewise.
5821         * config/i386/i386.opt: Add -mtbm.
5822         * config/i386/tbmintrin.h (__bextri_u32): New.
5823         (__blcfill_u32): Likewise.
5824         (__blci_u32): Likewise.
5825         (__blcic_u32): Likewise.
5826         (__blcmsk_u32): Likewise.
5827         (__blcs_u32): Likewise.
5828         (__blsfill_u32): Likewise.
5829         (__blsic_u32): Likewise.
5830         (__t1mskc_u32): Likewise.
5831         (__tzmsk_u32): Likewise.
5832         (__bextri_u64): Likewise.
5833         (__blcfill_u64): Likewise.
5834         (__blci_u64): Likewise.
5835         (__blcic_u64): Likewise.
5836         (__blcmsk_u64): Likewise.
5837         (__blcs_u64): Likewise.
5838         (__blsfill_u64): Likewise.
5839         (__blsic_u64): Likewise.
5840         (__t1mskc_u64): Likewise.
5841         (__tzmsk_u64): Likewise.
5842         * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
5843         * doc/invoke.texi: Document -mtbm.
5844         * doc/extend.texi: Document TBM built-in functions.
5845
5846 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
5847
5848         * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
5849         (x86_64-*-*): Likewise.
5850         * config/i386/cpuid.h: Define BMI bit.
5851         * config/i386/driver-i386.c (host_detect_local_cpu): Define
5852         and set has_bmi.
5853         * config/i386/i386-c.c (ix86_target_macros_internal): Check
5854         isa_flag for BMI.
5855         * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
5856         (OPTION_MASK_ISA_BMI_UNSET): New.
5857         (ix86_handle_option): Handle -mbmi.
5858         (isa_opts): Add -mbmi.
5859         (enum pta_flags): Add PTA_BMI.
5860         (ix86_option_override_internal): Add BMI support.
5861         (ix86_valid_target_attribute_inner_p): Handle -mbmi.
5862         (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
5863         (IX86_BUILTIN_BEXTR64): Likewise.
5864         (IX86_BUILTIN_CTZS): Likewise.
5865         (bdesc_args): Add BMI intrinsics.
5866         (ix86_expand_args_builtin): Add BMI specific cases.
5867         * config/i386/i386.h (TARGET_BMI): New for BMI.
5868         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
5869         (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
5870         * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
5871         (UNSPEC_TZCNT): Likewise.
5872         (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
5873         (bmi_andn_<mode>): New for BMI.
5874         (bmi_bextr_<mode>): Likewise.
5875         (bmi_blsi_<mode>): Likewise.
5876         (bmi_blsmsk_<mode>): Likewise.
5877         (bmi_blsr_<mode>): Likewise.
5878         * config/i386/i386.opt: Add -mbmi.
5879         * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
5880         * config/i386/bmiintrin.h (__lzcnt_u16): New.
5881         (__tzcnt_u16): Likewise.
5882         (__andn_u32): Likewise.
5883         (__bextr_u32): Likewise.
5884         (__blsi_u32): Likewise.
5885         (__blsmsk_u32): Likewise.
5886         (__blsr_u32): Likewise.
5887         (__lzcnt_u32): Likewise.
5888         (__tzcnt_u32): Likewise.
5889         (__andn_u64): Likewise.
5890         (__bextr_u64): Likewise.
5891         (__blsi_u64): Likewise.
5892         (__blsmsk_u64): Likewise.
5893         (__blsr_u64): Likewise.
5894         (__lzcnt_u64): Likewise.
5895         (__tzcnt_u64): Likewise.
5896         * doc/invoke.texi: Document -mbmi and -mno-bmi.
5897         * doc/extend.texi: Document BMI built-in functions.
5898
5899 2010-11-10  Jan Hubicka  <jh@suse.cz>
5900
5901         PR tree-optimize/46228
5902         * doc/invoke.texi (comdat-sharing-probability): Document.
5903         * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
5904         * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
5905
5906 2010-11-10  Jan Hubicka  <jh@suse.cz>
5907
5908         PR tree-optimize/46228
5909         * cgraph.c (cgraph_propagate_frequency): Fix typo.
5910
5911 2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>
5912
5913         PR tree-optimization/46414
5914         * tree-inline.c (estimate_move_cost): Check preferred vector
5915         mode for vector type.
5916
5917 2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5918
5919         * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
5920
5921 2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>
5922
5923         PR tree-optimization/45971
5924         * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
5925         for phi nodes analyzable by scev.
5926
5927 2010-11-10  Richard Guenther  <rguenther@suse.de>
5928
5929         PR tree-optimization/44964
5930         * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
5931
5932 2010-11-10  Martin Jambor  <mjambor@suse.cz>
5933
5934         PR tree-optimization/46351
5935         PR tree-optimization/46377
5936         * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
5937         aggregate bit-fields.
5938
5939 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
5940
5941         * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
5942         * doc/tm.texi: Regenerate.
5943         * opts-common.c (tm.h): Don't include.
5944         (target_option_translations): Remove.
5945         (decode_cmdline_options_to_array): Don't handle translating options.
5946         * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
5947         * config/darwin-driver.c: Don't condition includes on
5948         CROSS_DIRECTORY_STRUCTURE.
5949         (darwin_default_min_version): Make static.
5950         (darwin_driver_init): New.  Call darwin_default_min_version if not
5951         CROSS_DIRECTORY_STRUCTURE.
5952         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
5953         (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
5954         (ASM_SPEC): Add %{static}.
5955         (darwin_default_min_version): Don't declare.
5956         (darwin_driver_init): Declare.
5957         (GCC_DRIVER_HOST_INITIALIZATION): Define to call
5958         darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
5959         * config/darwin.opt (all_load, allowable_client,
5960         arch_errors_fatal, bind_at_load, bundle, bundle_loader,
5961         dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
5962         exported_symbols_list, filelist, findirect-virtual-calls,
5963         flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
5964         framework, fterminated-vtables, gfull, gused, image_base, init,
5965         install_name, multi_module, multiply_defined,
5966         multiply_defined_unused, no_dead_strip_inits_and_terms,
5967         seg_addr_table, seg_addr_table_filename, segaddr,
5968         segs_read_only_addr, segs_read_write_addr, single_module,
5969         umbrella, unexported_symbols_list, weak_reference_mismatches,
5970         Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
5971         Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
5972         Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
5973         Zno_dead_strip_inits_and_terms, Zsingle_module): New.
5974         * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
5975         (ASM_SPEC): Add %{static}.
5976         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
5977         * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
5978         (DRIVER_SELF_SPECS): Handle options formerly in
5979         TARGET_OPTION_TRANSLATE_TABLE.
5980         * config/mep/mep.opt (mfar): New.
5981         * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
5982         (DRIVER_SELF_SPECS): Define.  Handle options formerly in
5983         TARGET_OPTION_TRANSLATE_TABLE.
5984         * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
5985         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
5986         * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
5987         ffix-and-continue, findirect-data): New.
5988         * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
5989         * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
5990         (mnofpu): Define mask and use Report here.
5991
5992 2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5993
5994         * config/s390/s390.c (s390_emit_prologue): Report the stack
5995         size if -fstack-usage is used.
5996
5997 2010-11-10  Richard Guenther  <rguenther@suse.de>
5998
5999         PR tree-optimization/46398
6000         * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
6001
6002 2010-11-10  Joern Rennecke  <amylaar@spamcop.net>
6003
6004         PR target/44760
6005         * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
6006         (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
6007         GP_REG_OR_PSEUDO_STRICT_P.
6008         * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
6009         unexpected alternative.
6010         (*movsf_internal): Likewise.
6011         (indirect_jump): Replace call to non-existant function with call to
6012         internal_error.
6013         (tablejump): Likewise.
6014         * config/iq2000/iq2000.c: Include df.h .
6015         (iq2000_function_arg_advance): Use CONST_CAST2.
6016         (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
6017         (iq2000_can_eliminate): Call leaf_function_p instead of testing for
6018         a non-zero function address.
6019         (iq2000_initial_elimination_offset): Add gcc_unreachable for
6020         unexpected value of FROM.
6021         (symbolic_expression_p): Delete.
6022         (iq2000_function_value): Constify func.
6023         (expand_one_builtin): Use expand_normal.
6024         (iq2000_print_operand): Don't print VALUE if calculating it failed.
6025
6026         PR rtl-optimization/44764
6027         * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
6028
6029         PR target/46407
6030         * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
6031         * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
6032         with ATTRIBUTE_UNUSED.
6033         (valid_psw_flag): Constify parameter which.
6034         (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
6035
6036         PR target/46415
6037         * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
6038         (mmix_dbx_register_number): Likewise.
6039         * config/mmix/mmix.c: Include df.h .
6040         (mmix_local_alignment): Change argument basic_align and return type
6041         to unsigned.
6042         (mmix_dbx_register_number): Change argument and return type to
6043         unsigned.
6044         (mmix_expand_prologue): Use add_reg_note.
6045
6046         PR target/46417
6047         * config/spu/spu.c (spu_expand_insv): Remove unused variables.
6048         (spu_split_store): Use aform.
6049         (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
6050
6051 2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
6052
6053         PR/46268
6054         * doc/gty.texi (GTY Options): Clarify that variable_size produces
6055         allocators taking size in bytes, compare with length option.  Add
6056         size calculation example.
6057         (Invoking the garbage collector): Ensure that sentences are
6058         followed by two spaces.  Describe that pointer fields must be
6059         initialized at ggc_collect call.
6060         (Troubleshooting): New section.
6061
6062 2010-11-09  Jan Hubicka  <jh@suse.cz>
6063
6064         PR tree-optimization/40436
6065         * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
6066         * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
6067         normal instructions; be sure bultin is not implemented in this file;
6068         compute non-zero return cost.
6069         (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
6070         * tree-inline.h (eni_weights_d): Add return cost.
6071
6072 2010-11-09  Joseph Myers  <joseph@codesourcery.com>
6073
6074         * c-parser.c (c_parser_struct_declaration): Handle declaration
6075         specifiers followed by CPP_CLOSE_BRACE.
6076
6077 2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
6078
6079         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
6080         split occurs before reload, and we allocate memory at the time of
6081         the split, not during expansion.  Add attributes.
6082         (floatsi<mode>2_lfiwax_mem): Ditto.
6083         (floatunssi<mode>2_lfiwzx): Ditto.
6084         (floatunssi<mode>2_lfiwzx_mem): Ditto.
6085         (floatsidf2): Ditto.
6086         (floatunssisf2): Ditto.
6087         (floatunssidf2): Ditto.
6088         (fix_trunc<mode>si2): Ditto.
6089         (fix_trunc<mode>si2_stfiwx): Ditto.
6090         (fix_trunc<mode>si2_internal): Ditto.
6091         (fix_trunc<mode>si2): Ditto.
6092         (fix_trunc<mode>di2): Ditto.
6093         (fixuns_trunc<mode>si2_stfiwx): Ditto.
6094         (floatsisf2): Ditto.
6095         (floatdidf2_mem): Ditto.
6096         (floatunsdidf2_mem): Ditto.
6097         (floatunsdidf2): Ditto.
6098         (floatdisf2_internal1): Ditto.
6099         (floatdisf2_mem): Ditto.
6100         (floatunsdisf2_mem): Ditto.
6101         (floatsi<mode>2_lfiwax_mem2): Delete.
6102         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
6103         (fix_trunc<mode>si2_mem): Ditto.
6104         (fixuns_trunc<mode>si2_mem): Ditto.
6105         (round32<mode>2_fprs): New combiner insn to combine (double)(int)
6106         type operations to reduce copying the values to multiple memory slots.
6107         (roundu32<mode>2_fprs): Ditto.
6108
6109         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
6110         PRE_INC, PRE_DEC, PRE_MODIFY.
6111         (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
6112
6113         * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
6114         Delete prototype.
6115
6116 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
6117
6118         PR target/43808
6119         * cfgexpand.c (partition_stack_vars): Call
6120         update_alias_info_with_stack_vars unconditionally.
6121         (update_alias_info_with_stack_vars): Allow unused
6122         unreferenced vars when not optimizing.
6123
6124 2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>
6125
6126         PR tree-optimization/46036
6127         * tree-if-conv.c (predicate_bbs): Call unshare_expr before
6128         add_to_dst_predicate_list.
6129
6130 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
6131
6132         PR debug/46171
6133         * df-problems.c (struct dead_debug_use, struct dead_debug): Move
6134         earlier.
6135         (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
6136         argument, call dead_debug_reset when adding REG_UNUSED note.
6137         (dead_debug_reset): New function.
6138         (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
6139         df_create_unused_note callers.
6140
6141 2010-11-09  Anatoly Sokolov  <aesok@post.ru>
6142
6143         * config/fr30/fr30.c: Include "df.h".
6144
6145 2010-11-09  Richard Guenther  <rguenther@suse.de>
6146
6147         PR tree-optimization/46355
6148         * tree-loop-distribution.c (tree_loop_distribution): Do not
6149         distribute loops without a single exit.
6150
6151 2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6152
6153         PR rtl-optimization/46237
6154         * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
6155         saved hard regs if they might get partially clobbered.
6156
6157 2010-11-09  Paul Koning  <ni1d@arrl.net>
6158
6159         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
6160
6161 2010-11-09  Richard Guenther  <rguenther@suse.de>
6162
6163         PR tree-optimization/46177
6164         * tree-loop-distribution.c (prop_phis): Remove.
6165         (generate_builtin): Re-use the old loop exit edge to avoid
6166         needing to update PHI nodes.
6167
6168 2010-11-09  Joern Rennecke  <amylaar@spamcop.net>
6169
6170         * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
6171         type of args_size to unsigned HOST_WIDE_INT.
6172
6173         PR target/44755
6174         * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
6175         * config/t-pnt16-warn: New file.
6176         * config/picochip/picochip.c (picochip_emit_stack_allocate):
6177         Use add_reg_note.
6178         (picochip_emit_save_register): Likewise.
6179         (picochip_emit_restore_register): Remove variable insn.
6180         (picochip_legitimize_address): Don't use C++ style comments.
6181         (picochip_legitimize_reload_address): Likewise.
6182         (reorder_var_tracking_notes): Remove variable vliw_start.
6183         (picochip_reorg): Cast first arguemnt to emit_note_after to
6184         enum insn_note.
6185         (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
6186         (picochip_expand_builtin_3op): Likewise.
6187         (picochip_expand_builtin_2opvoid): Likewise.
6188         (picochip_expand_array_get, picochip_expand_array_put): Likewise.
6189         (picochip_expand_array_testport): Likewise.
6190         (picochip_init_builtins): Remove unused variables.
6191         * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
6192         to unsigned long, and output it as such.
6193         (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
6194         * config/picochip/picochip.md (movhicc): Remove nonsense statement.
6195         (schedType): Cast result of picochip_schedule_type to
6196         enum attr_schedType.
6197
6198         PR target/44759
6199         * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
6200         conditional to type of S.
6201         (mn10300_function_arg): Remove unused variable align.
6202         (mn10300_arg_partial_bytes): Likewise.
6203         * config/mn10300/mn10300.md (attribute cpu): Cast value to
6204         enum attr_cpu.
6205
6206 2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
6207
6208         PR bootstrap/46392
6209         * gengtype-parse.c (type): Call get_input_file_name to get file name.
6210
6211 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
6212
6213         * tree.h (contains_placeholder_p): Fix comment.
6214         (type_contains_placeholder_p): Adjust comment.
6215         * tree.c (contains_placeholder_p): Fix comment.
6216         (type_contains_placeholder_1): Do not recurse on pointed-to types and
6217         adjust comment.
6218         (type_contains_placeholder_p): Add comment.
6219
6220 2010-11-09  Paul Koning  <ni1d@arrl.net>
6221
6222         * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
6223         output of byte values.
6224
6225 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
6226
6227         PR middle-end/46360
6228         * tree-ssa-propagate.c (update_call_from_tree): Fix for use
6229         not in SSA mode.
6230
6231 2010-11-09  Richard Guenther  <rguenther@suse.de>
6232
6233         PR middle-end/46221
6234         * varasm.c (compute_visible_aliases): New function.
6235         (remove_unreachable_alias_pairs): Aliases make a target available
6236         even though we reclaimed the cgraph node.
6237         (finish_aliases_1): Likewise.
6238         * Makefile.in (varasm.o): Add pointer-set.h dependency.
6239
6240 2010-11-09  Nick Clifton  <nickc@redhat.com>
6241
6242         * config/mn10300/mn10300-modes.def: New file.
6243
6244 2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
6245             Jeremie Salvucci  <jeremie.salvucci@free.fr>
6246
6247         * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
6248         (plugin_files, get_file_basename, get_file_realbasename)
6249         (get_file_langdir, error_at_line, gt_files, this_file)
6250         (system_h_file, read_input_list, create_field_all)
6251         (get_file_srcdir_relative_path, get_file_basename)
6252         (get_file_langdir, get_file_gtfilename)
6253         (get_output_file_with_visibility, get_output_file_name)
6254         (struct flist, put_mangled_filename, walk_type)
6255         (put_mangled_filename, finish_root_table, write_roots): Use
6256         input_file-s.
6257         (lang_dir_names, num_lang_dirs): Remove static.
6258         (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
6259         (main): Use input_file-s.
6260
6261         * gengtype.h: (struct input_file_st, input_file): New type.
6262         (struct fileloc): Use it.
6263         (gt_files, num_gt_files, this_file, system_h_file)
6264         (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
6265         (get_input_file_name): New function.
6266         (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
6267         use input_file.
6268         (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
6269         (get_output_file_name): Ditto.
6270
6271         * gengtype-lex.l (yybegin): Use input_file.
6272
6273         * gengtype-parse.c (parse_error): Use input_file.
6274
6275 2010-11-08  Xinliang David Li  <davidxl@google.com>
6276
6277         PR tree-optimization/46316
6278         * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
6279         * double-int.h (double_int_mul_with_sign): New function.
6280         * double-int.c (double_int_mul_with_sign): New function.
6281
6282 2010-11-08  Paul Koning  <ni1d@arrl.net>
6283
6284         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
6285
6286 2010-11-08  Paul Koning  <ni1d@arrl.net>
6287
6288         * config/pdp11/pdp11.md (negsi2): Fix wrong code.
6289
6290 2010-11-08  Paul Koning  <ni1d@arrl.net>
6291
6292         * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
6293         to 8 bits.
6294
6295 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
6296
6297         PR target/46378
6298         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
6299         turn on ISA 2.04 rounding instructions for power5.
6300
6301         * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
6302         not ISA 2.02.
6303
6304         PR target/45585
6305         * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
6306         in FPR registers.
6307         (movdi_low_st): Ditto.
6308
6309 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
6310             Richard Henderson  <rth@redhat.com>
6311
6312         PR target/44758
6313         * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
6314         (attribute acc_group): Cast value to enum attr_acc_group.
6315         (*movdi_nodouble+6): Use gen_int_mode.
6316         * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
6317         if RTX_CODE is defined or not.
6318         * config/frv/frv.c (enum frv_io_type): New enum, broken out of
6319         struct frv_io.
6320         (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
6321         (frv_frame_access, frv_expand_prologue): Remove unused variables.
6322         (frv_expand_block_clear): Likewise.
6323         (frv_trampoline_init): Use LCT_NORMAL.
6324         (struct frv_packet_group): New struct, broken out of type of
6325         frv_packet.
6326         (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
6327         use cast in loop counter increment.
6328         (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
6329         assigning to io->type.
6330         (bdesc_set): Use rtx_code UNKNOWN in initializer.
6331         (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
6332         (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
6333         (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
6334         (frv_read_argument): Use expand_normal.
6335
6336         PR target/44757
6337         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
6338         lm32_legitimate_constant_p.
6339         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
6340         * config/lm32/lm32.c (gen_int_relational): Make new block for
6341         LE / LT / LEU / LTU case.  Declare variables at start of block.
6342         (lm32_block_move_inline): Use XALLOCAVEC.
6343
6344 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6345
6346         * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
6347
6348 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
6349
6350         * gengtype (get_output_file_for_structure): Ensure type is union
6351         or struct.
6352         (write_splay_tree_allocator_def): Use
6353         get_output_file_with_visibility.
6354
6355 2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6356
6357         * config/s390/s390.c (s390_handle_arch_option): Set type and flags
6358         to defined values in case of an error.
6359         (s390_option_override): Skip further processing if the -march
6360         parameter wasn't recognized.
6361
6362 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
6363
6364         * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
6365         assert that REG is a hard register number before using it as an index.
6366
6367         PR bootstrap/46358
6368         * config/i386/i386.c (ix86_expand_split_stack_prologue):
6369         Avoid warnings when HOST_WIDE_INT is 32 bit.
6370
6371 2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>
6372
6373         PR target/46208
6374         * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
6375         (sparc_promote_prototypes): Likewise.
6376         (sparc_promote_function_mode): Promote in 32-bit mode as well.
6377         (sparc_return_in_memory): Remove superfluous parentheses.
6378         (sparc_struct_value_rtx): Fix long lines.
6379         (sparc_function_value_1): Promote in 32-bit mode as well.
6380
6381 2010-11-08  Andrey Belevantsev  <abel@ispras.ru>
6382
6383         PR rtl-optimization/45352
6384         * sel-sched.c (find_best_expr): Do not set pneed_stall when
6385         the variable_issue hook is not implemented.
6386         (fill_insns): Remove dead variable stall_iterations.
6387         (init_seqno_1): Force EBB start for resetting sched cycles on any
6388         successor blocks of the rescheduled region.
6389         (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
6390         (reset_sched_cycles_in_current_ebb): Add debug printing.
6391         New variable issued_insns.  Advance state when we have issued
6392         issue_rate insns.
6393
6394 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
6395
6396         * gengtype (main): Get here's position using POS_HERE macro for
6397         do*typedef calls.
6398
6399 2010-11-07  Ian Lance Taylor  <iant@google.com>
6400
6401         PR target/46089
6402         * config/i386/i386.c (split_stack_fn_large): New static variable.
6403         (ix86_expand_split_stack_prologue): Handle large model.
6404
6405 2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>
6406
6407         * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
6408         all possible addressing modes.
6409
6410 2010-11-07  Uros Bizjak  <ubizjak@gmail.com>
6411
6412         PR tree-optimization/46346
6413         * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
6414
6415 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
6416
6417         * config/mips/mips.c: Revert previous patch.
6418         * config/mips/mips.md: Likewise.
6419
6420 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
6421
6422         * config/mips/mips.c (mips_rtx_costs): Handle FMA.
6423         * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
6424         (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
6425         (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
6426         (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
6427         to use FMA.
6428         (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
6429         (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
6430         (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
6431         (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
6432
6433 2010-11-06  Simon Martin  <simartin@users.sourceforge.net>
6434
6435         PR c/43384
6436         * c-decl.c (lookup_label): Labels can only be referenced in a
6437         function's scope.
6438         (store_parm_decls_oldstyle): Skip erroneous parameters.
6439
6440 2010-11-06  Anatoly Sokolov  <aesok@post.ru>
6441
6442         * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
6443         LIBCALL_VALUE): Remove macros.
6444         * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
6445         TARGET_FUNCTION_VALUE_REGNO_P): Define.
6446         (fr30_function_value_regno_p, fr30_function_value,
6447         fr30_libcall_value): New functions.
6448
6449 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
6450
6451         PR middle-end/46314
6452         * target.def (generate_internal_label): New asm_out hook.
6453         * output.h (default_generate_internal_label): Declare.
6454         * varasm.c (default_generate_internal_label): Define.
6455
6456 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
6457
6458         PR target/44981
6459         * doc/extend.tex (format): Document NSString extension.
6460         (format_arg): Likewise.
6461         (Darwin Format Checks): New section.
6462         * doc/tm.texi: Document string object hooks (generated).
6463         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
6464         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
6465         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
6466         * target.def (objc_construct_string_object): Rename, amend
6467         documentation.
6468         (string_object_ref_type_p): New hook.
6469         (check_string_object_format_arg): New hook.
6470         * c-parser.c (c_parser_attributes): Allow objective-c class names as
6471         attribute identifiers.
6472         * config/darwin-c.c (darwin_cfstring_ref_p): New.
6473         (darwin_check_cfstring_format_arg): New.
6474         (darwin_additional_format_types): New.
6475         * config/darwin-protos.h (darwin_cfstring_ref_p) New.
6476         (darwin_check_cfstring_format_arg): New.
6477         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
6478         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
6479         (TARGET_N_FORMAT_TYPES): New.
6480         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
6481
6482 2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
6483             Pascal Obry  <obry@adacore.com>
6484
6485         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
6486         in 64-bit mode and 17 otherwise.
6487
6488 2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6489
6490         PR debug/45939
6491         * var-tracking.c (emit_note_insn_var_location): Make sure that
6492         call related var location notes come before the normal ones.
6493
6494 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
6495
6496         PR target/46326
6497         * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
6498         in the last change.
6499
6500 2010-11-05  Ian Lance Taylor  <iant@google.com>
6501
6502         * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
6503
6504 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
6505
6506         PR c/44772
6507         * c-decl.c (warn_cxx_compat_finish_struct): Don't call
6508         pointer_set_contains if DECL_NAME is NULL.
6509
6510 2010-11-05  Ian Lance Taylor  <iant@google.com>
6511
6512         PR target/46084
6513         * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
6514         request enough additional space for alignment, and force alignment.
6515
6516 2010-11-05  Kai Tietz  <kai.tietz@onevision.com>
6517
6518         * config/i386/i386.c (legitimate_pic_address_disp_p):
6519         Handle UNSPEC_PCREL.
6520         (ix86_legitimate_address_p): Likewise.
6521         (legitimize_pic_address): Likewise.
6522         (output_pic_addr_const): Likewise.
6523         (ix86_delegitimize_address): Likewise.
6524         (ix86_find_base_term): Likewise.
6525         (memory_address_length): Likewise.
6526         (x86_output_mi_thunk): Handle special case x64
6527         for non local binding.
6528         * config/i386/i386.md (UNSPEC_PCREL): New.
6529         * config/i386/winnt.c (i386_pe_binds_local_p):
6530         Allow weak symbol for x64 windows with non-local binding.
6531
6532 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
6533
6534         PR target/45670
6535         * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
6536         instead of EXPAND_NORMAL for base expansion.
6537
6538 2010-11-05  Uros Bizjak  <ubizjak@gmail.com>
6539
6540         * config.gcc: Support --with-fpmath=avx for x86.
6541         * config/i386/avxmath.h: New.
6542         * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
6543
6544 2010-11-05  Ian Lance Taylor  <iant@google.com>
6545
6546         * tree.h (struct tree_type): Don't use descbits in GTY annotation.
6547         * gengtype.c (walk_type): Don't recognize descbits option.
6548
6549 2010-11-05  Joseph Myers  <joseph@codesourcery.com>
6550
6551         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
6552         WORD_SWITCH_TAKES_ARG): Remove.
6553         * doc/options.texi (Args): Document.
6554         * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
6555         * doc/tm.texi: Regenerate.
6556         * opt-functions.awk (switch_flags): Handle Args.
6557         * opts-common.c: Update comment on tm.h include.
6558         (decode_cmdline_option): Handle options with multiple arguments.
6559         Don't check WORD_SWITCH_TAKES_ARG for unknown options.
6560         * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
6561         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
6562         CL_COMMON): Update values.
6563         * system.h (WORD_SWITCH_TAKES_ARG): Poison.
6564         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
6565         * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
6566         sectobjectsymbols, sectorder, segcreate, segprot): New.
6567
6568 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
6569             Uros Bizjak  <ubizjak@gmail.com>
6570
6571         * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
6572         256bit AVX register is used.
6573         (ix86_expand_vector_move_misalign): Likewise.
6574         (ix86_expand_vector_move): Replace use_avx256_p with
6575         VALID_AVX256_REG_MODE.
6576
6577 2010-11-05  Joern Rennecke  <amylaar@spamcop.net>
6578
6579          PR target/44750
6580         * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
6581         change.  Set $@-warn.o to -Wno-error.
6582
6583         PR bootstrap/44756
6584         * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
6585         comparing it to a signed value.
6586
6587         PR middle-end/44766
6588         * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
6589         PR bootstrap/44770
6590         * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
6591         to i.
6592
6593         PR target/44754
6594         * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
6595         (m32c_function_arg).  Add comma between arguments two and three.
6596         (m32c_promote_prototypes): Remove declaration.
6597         (current_function_special_page_vector): Likewise.
6598         (m32c_regno_reg_class): Change return type to enum reg_class.
6599         (m32c_pushm_popm): Use add_reg_note.
6600         (m32c_push_rounding): Change return type to unsigned int.
6601         (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
6602         enum reload_type.
6603         (m32c_insert_attributes): Constify variable name.
6604         (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
6605         (m32c_prepare_shift): Remove variable lref.
6606         (m32c_expand_movcc): Remove variable cmp.
6607         (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
6608         (m32c_compare_redundant): Remove variable op2.
6609         * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
6610         (m32c_pragma_memregs): Assign the number to target_memregs.
6611         (m32c_pragma_address): Remove variable var_str.
6612         * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
6613         enum reg_class.
6614         (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
6615         * config/m32c/bitops.md (andsi3): Add default case to switch.
6616         (iorsi3, xorsi3): Likewise.
6617         * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
6618         * config/m32c/jump.md (call, call_value): Likewise.
6619         * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
6620         (m32c_regno_reg_class): Likewise.
6621         (current_function_special_page_vector): Declare.
6622
6623 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
6624
6625         * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
6626
6627         PR tree-optimization/46099
6628         * tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
6629         if it is NULL and uid wasn't found in the hash table.  Just fold the
6630         result if it is NULL otherwise.  Insert other potentially needed
6631         stmts right before current stmt instead of on the entry edge.
6632         (struct elv_data): Add gsi and reset fields.
6633         (eliminate_local_variables_1): Adjust caller.  If take_address_of
6634         failed for debug stmt, set dta->reset and return.
6635         (eliminate_local_variables_stmt): Change STMT argument for GSI,
6636         pass GSI through to the callback, handle resetting of debug stmts.
6637         (eliminate_local_variables): Adjust caller.  Process debug stmts
6638         in second phase.
6639
6640         PR middle-end/43690
6641         * gimplify.c (gimplify_asm_expr): If a "m" input is a
6642         {pre,post}{in,de}crement, fail.
6643
6644         PR debug/46307
6645         * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
6646         * tree-pretty-print.c (dump_generic_node): Likewise.
6647         (op_code_prio): Likewise.
6648         * cfgexpand.c (expand_debug_expr): Likewise.
6649
6650 2010-11-04  Paul Koning  <ni1d@arrl.net>
6651
6652         * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
6653         constraints.
6654
6655 2010-11-04  Chao-ying Fu  <fu@mips.com>
6656
6657         * configure.ac: Test assembler support for DSP Rev1 mult.
6658         * configure: Regenerate.
6659         * config.in: Regenerate.
6660         * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
6661         * config/mips/mips.c (CODE_FOR_mips_mult): New define.
6662         (CODE_FOR_mips_multu): New define.
6663         (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
6664         dspr2_32 to dsp_32.
6665         (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
6666         Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
6667         * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
6668         New define_expand patterns.
6669         * config/mips/constraints.md (ka): Update the constraint to test
6670         ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
6671         * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
6672         mips_multu): Delete.
6673         * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
6674         Change target constraint to "ka".
6675         Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
6676         (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
6677         Emit the accumulator destination when ISA_HAS_DSP_MULT.
6678         (<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
6679         Emit the accumulator destination when ISA_HAS_DSP_MULT.
6680         (<u>maddsidi4): Likewise.
6681         * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
6682         msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
6683
6684 2010-11-04  Paul Koning  <ni1d@arrl.net>
6685
6686         * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
6687
6688 2010-11-04  Paul Koning  <ni1d@arrl.net>
6689
6690         * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
6691
6692 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
6693
6694         Fixed using the Objective-C 2.0 dot-syntax with class names.
6695         * c-parser.c (c_parser_next_token_starts_declspecs): In
6696         Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
6697         (c_parser_next_token_starts_declaration): Same.
6698         (c_parser_postfix_expression): Parse the Objective-C 2.0
6699         dot-syntax with a class name.
6700
6701 2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>
6702
6703         * final.c (compute_alignments): Compute/free loop info all the time.
6704         * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
6705         * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
6706         * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
6707         * config/rs6000/rs6000.c (cfgloop.h): Include.
6708         (can_override_loop_align): New.
6709         (rs6000_option_override_internal): Set it.
6710         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
6711         (rs6000_loop_align): New function.
6712         (rs6000_loop_align_max_skip): Likewise.
6713
6714 2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6715
6716         PR driver/45703
6717         * collect2.c (main): Print --help output to stdout.  Do not
6718         exit right away, so ld --help is appended.  Add empty lines
6719         to separate output suitably.
6720
6721 2010-11-04  Jakub Jelinek  <jakub@redhat.com>
6722
6723         PR tree-optimization/46233
6724         * ipa-pure-const.c (local_pure_const): Do noreturn discovery
6725         after calling analyze_function, not before.
6726
6727         PR target/46234
6728         * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
6729         instead of build_va_arg_indirect_ref.
6730         * config/spu/spu.c (spu_va_start): Likewise.
6731         * config/s390/s390.c (s390_va_start): Likewise.
6732
6733 2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
6734
6735         PR middle-end/46292
6736         * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
6737         if the innermode is not vector mode, determine the mode of a subreg
6738         by using mode_for_size of inner_size.
6739
6740 2010-11-04  Richard Guenther  <rguenther@suse.de>
6741
6742         PR rtl-optimization/46183
6743         * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
6744         (execute_rtl_pre): Likewise.
6745         (execute_rtl_hoist): Likewise.
6746
6747 2010-11-04  Richard Guenther  <rguenther@suse.de>
6748
6749         PR tree-optimization/46068
6750         * ipa-split.c (consider_split): Remove gcc_unreachable.
6751
6752 2010-11-04  Richard Guenther  <rguenther@suse.de>
6753
6754         * tree-nested.c (build_addr): Use build_fold_addr_expr.
6755
6756 2010-11-04  Richard Guenther  <rguenther@suse.de>
6757
6758         PR tree-optimization/45991
6759         * gimplify.c (force_gimple_operand_1): Use the provded test
6760         function in the initial test.
6761
6762 2010-11-04  Jeff Law  <law@redhat.com>
6763
6764         * ira.c (validate_equiv_mem): Remove code to avoid invalidation
6765         of readonly memory equivalances for const/pure calls.
6766
6767 2010-11-04  Richard Guenther  <rguenther@suse.de>
6768
6769         PR tree-optimization/45733
6770         * tree-vect-stmts.c (reverse_vec_elements): Honor the
6771         permute builtins function return type.
6772
6773 2010-11-04  Joern Rennecke  <amylaar@spamcop.net>
6774
6775         PR middle-end/44765
6776         * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
6777         as an index, check it is not INVALID_REGNUM.
6778
6779         PR bootstrap/44756
6780         * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
6781         unsignedp.
6782         * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
6783
6784         PR bootstrap/44756
6785         * function.c (thread_prologue_and_epilogue_insns): Add
6786         ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
6787
6788         PR bootstrap/44756
6789         * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
6790
6791         PR target/44750
6792         * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
6793         (pdp11_preferred_reload_class): Rename class to rclass.
6794         (pdp11_preferred_output_reload_class): Likewise.
6795         * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
6796         ALL_COMPILERFLAGS .
6797         (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
6798
6799         PR bootstrap/44756
6800         * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
6801         iteration variables to enum machine_mode.
6802
6803         PR target/44751
6804         * config/h8300/h8300.c: Include df.h.
6805         (push, pop): Use add_reg_note.
6806         (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
6807         (compute_a_shift_cc): Likewise.
6808         (expand_a_shift): Argument code has type enum rtx_code.
6809         (struct shift_insn): Member cc_valid has type enum attr_cc.
6810         (struct shift_info) <cc_inline, cc_special>: Likewise.
6811         enum attr_cc.
6812         * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
6813         (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
6814
6815 2010-11-04  Ira Rosen  <irar@il.ibm.com>
6816
6817         PR tree-optimization/46213
6818         * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
6819         MINUS_EXPR only if the first operand is reduction operand.
6820
6821 2010-11-04  Richard Guenther  <rguenther@suse.de>
6822             Richard Henderson  <rth@redhat.com>
6823
6824         * tree.def (FMA_EXPR): New tree code.
6825         * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
6826         * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
6827         * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
6828         * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
6829         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
6830         * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
6831         (execute_optimize_widening_mul): Call it.  Reorganize to allow
6832         dead stmt removal.  Move TODO flags ...
6833         (pass_optimize_widening_mul): ... here.
6834         * flag-types.h (enum fp_contract_mode): New enum.
6835         * common.opt (flag_fp_contract_mode): New variable.
6836         (-ffp-contract): New option.
6837         * opts.c (common_handle_option): Handle it.
6838         * doc/invoke.texi (-ffp-contract): Document.
6839         * tree.h (fold_fma): Declare.
6840         * builtins.c (fold_fma): New function.
6841         (fold_builtin_fma): Likewise.
6842         (fold_builtin_3): Call it for fma.
6843         * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
6844         * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
6845         * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
6846         New expanders.
6847         * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
6848         named patterns.
6849         * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
6850         * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
6851         (fms_optab, fnma_optab, fnms_optab): New defines.
6852         * gimplify.c (gimplify_expr): Handle binary truth expressions
6853         explicitly.  Handle FMA_EXPR.
6854         * tree-vect-stmts.c (vectorizable_operation): Handle ternary
6855         operations.
6856
6857 2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
6858             Richard Guenther  <rguenther@suse.de>
6859
6860         * passes.c (init_optimization_passes): Move veclower after SSA.
6861         * tree-vect-generic.c (uniform_vector_p): New function.
6862         (expand_vector_operations_1): Handle conversion.
6863         (pass_lower_vector): Update SSA form.
6864
6865 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
6866
6867         * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
6868         plugin capabilities.
6869         * configure: Regenerate.
6870
6871 2010-11-03  Xinliang David Li  <davidxl@google.com>
6872
6873         PR target/46200
6874         * tree-ssa-loop-ivopts.c (get_computation_cost_at):
6875         Adjust cbase if the use stmt is after iv update.
6876
6877 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
6878
6879         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
6880
6881 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
6882
6883         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
6884         comment.  Pass true to the last argument of output_stack_adjust.
6885
6886 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
6887
6888         PR target/46295
6889         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
6890         if 256bit AVX register is used.
6891
6892 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
6893
6894         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
6895         xsmindp/xsmaxdp on VSX for single precision min/max.
6896         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
6897         (vsx_sminsf3): Ditto.
6898
6899 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
6900
6901         * combine.c (try_combine): Fix formatting issues, improve comments and
6902         fix a pasto.
6903
6904 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
6905
6906         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
6907         of the result before building binary expressions.
6908
6909 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
6910
6911         PR rtl-optimization/45865
6912         * Makefile.in (df-problems.o): Revert revision 164552.
6913         * basic-block.h (enum bb_flags): Likewise.
6914         * cfgcleanup.c (block_was_dirty): Likewise.
6915         (try_forward_edges): Likewise.
6916         (try_crossjump_bb): Likewise.
6917         (try_head_merge_bb): Likewise.
6918         (try_optimize_cfg): Likewise.
6919         (cleanup_cfg): Likewise.
6920         * df-core.c (df_set_bb_dirty): Likewise.
6921         * df-problems.c: Likewise.
6922         (df_simulate_find_uses): Likewise.
6923         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
6924         (find_memory, find_memory_store): Likewise.
6925         (can_move_insns_across): Likewise.
6926         * df.h (can_move_insns_across): Likewise.
6927         * ifcvt.c (find_memory): Likewise.
6928         (dead_or_predicable): Likewise.
6929
6930 2010-11-03  Richard Guenther  <rguenther@suse.de>
6931
6932         PR middle-end/46288
6933         * predict.c (strip_predict_hints): Simply DCE builtin expect if
6934         the result is unused.
6935
6936 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
6937
6938         PR tree-optimization/46009
6939         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
6940         cond_if_else_store_replacement if bb1 and bb2 have the same
6941         single successor.
6942         (cond_store_replacement): Use gimple_assign_single_p, don't
6943         check if rhs is SSA_NAME or invariant.  Call release_defs for
6944         assign.
6945         (cond_if_else_store_replacement): New function.
6946
6947 2010-11-03  Richard Guenther  <rguenther@suse.de>
6948
6949         * opts.c (finish_options): Properly check for all WHOPR
6950         flags before complaining about -flto-partition.
6951
6952 2010-11-04  Alan Modra  <amodra@gmail.com>
6953
6954         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
6955         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
6956         TARGET_SECURE_PLT.
6957         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
6958         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
6959         on input, "r" on output.
6960
6961 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
6962
6963         Implemented -fobjc-std=objc1 flag.
6964         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
6965         option.
6966         * doc/standards.texi (Standards): Updated the section on
6967         Objective-C; mention support for Objective-C 2.0 features and the
6968         new -fstd-objc=objc1 flag to disable them.
6969
6970 2010-11-03  Richard Guenther  <rguenther@suse.de>
6971
6972         PR middle-end/46241
6973         * dwarf2out.c (scope_die_for): Properly detect global scope.
6974
6975 2010-11-03  Richard Guenther  <rguenther@suse.de>
6976
6977         PR tree-optimization/46190
6978         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
6979         Properly compute peel iterations.
6980
6981 2010-11-03  Richard Guenther  <rguenther@suse.de>
6982
6983         PR tree-optimization/46286
6984         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
6985         re-allocated vector data.
6986
6987 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
6988
6989         PR target/46285
6990         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
6991         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
6992         is completed.
6993
6994 2010-11-03  Richard Guenther  <rguenther@suse.de>
6995
6996         PR tree-optimization/46217
6997         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
6998         flag matches.
6999         (execute_update_addresses_taken): Likewise.
7000
7001 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
7002
7003         PR bootstrap/44335
7004         * targhooks.c (targhook_words_big_endian): New function.
7005         (targhook_float_words_big_endian): Likewise.
7006         * targhooks.h (targhook_words_big_endian): Declare.
7007         (targhook_float_words_big_endian): Likewise.
7008         * target.def (words_big_endian, float_words_big_endian): New hooks.
7009
7010 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
7011
7012         PR tree-optimization/46165
7013         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
7014         a normal call into noreturn call.
7015
7016 2010-11-03  Richard Guenther  <rguenther@suse.de>
7017
7018         PR middle-end/46251
7019         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
7020         not INDIRECT_REFs.
7021
7022 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
7023
7024         PR tree-optimization/46107
7025         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
7026         if cfg_hook_duplicate_loop_to_header_edge failed.
7027
7028 2010-11-03  Ian Lance Taylor  <iant@google.com>
7029
7030         PR lto/46273
7031         * config.gcc: Don't set lto_binary_reader.
7032         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
7033         (Configuration): Mention --disable-lto.  Remove --with-libelf
7034         paragraph.
7035
7036 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
7037
7038         PR debug/46252
7039         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
7040         prev_real_insn.
7041         * gcse.c (insert_insn_end_basic_block): Likewise.
7042
7043         PR rtl-optimization/46034
7044         PR rtl-optimization/46212
7045         PR rtl-optimization/46248
7046         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
7047         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
7048         before i0dest -> i0src substitution and pass 1 instead of 0 as last
7049         argument to subst on i2pat.
7050
7051 2010-11-02  Ian Lance Taylor  <iant@google.com>
7052
7053         * configure.ac: Use AC_SYS_LARGEFILE.
7054         * configure: Rebuild.
7055         * config.in: Rebuild.
7056
7057 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
7058
7059         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
7060         fold_convert.
7061         * c-typeck.c (build_function_call_vec): Likewise.
7062         * cfgexpand.c (expand_debug_expr): Likewise.
7063         * cgraphunit.c (assemble_thunk): Likewise.
7064         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
7065         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
7066         (fold_binary_loc, fold_ternary_loc): Likewise.
7067         * gimple-fold.c (get_symbol_constant_value): Likewise.
7068         * gimple-low.c (lower_builtin_setjmp): Likewise.
7069         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
7070         * gimplify.c (gimplify_init_constructor): Likewise.
7071         * lambda.h (build_linear_expr): Likewise.
7072         * omp-low.c (omp_reduction_init): Likewise.
7073         * tree-inline.c (remap_ssa_name): Likewise.
7074         * tree-object-size.c (compute_object_sizes): Likewise.
7075         * tree-sra.c (init_subtree_with_zero): Likewise.
7076         (sra_ipa_modify_assign): Likewise.
7077         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
7078         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
7079         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
7080         (undistribute_ops_list): Likewise.
7081         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
7082         * tree-vect-stmts.c (vectorizable_call): Likewise.
7083         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
7084         (build_zero_cst): Handle more cases directly.  Update comment.
7085
7086 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
7087
7088         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
7089         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
7090
7091         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
7092         and call ix86_split_call_vzeroupper instead of
7093         ix86_split_call_pop_vzeroupper.
7094         (*call_pop_1_vzeroupper): Likewise.
7095         (*sibcall_pop_1_vzeroupper): Likewise.
7096         (*call_value_pop_0_vzeroupper): Likewise.
7097         (*call_value_pop_1_vzeroupper): Likewise.
7098         (*sibcall_value_pop_1_vzeroupper): Likewise.
7099
7100 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
7101
7102         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
7103
7104 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
7105
7106         * basic-block.h (insert_insn_end_bb_new): Delete.
7107         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
7108
7109 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
7110             H.J. Lu  <hongjiu.lu@intel.com>
7111
7112         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
7113         (ix86_split_call_pop_vzeroupper): Likewise.
7114
7115         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
7116         (ix86_expand_call): Conditionally decorate calls with
7117         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
7118         (ix86_split_call_vzeroupper): New.
7119         (ix86_split_call_pop_vzeroupper): Likewise.
7120
7121         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
7122         (*call_pop_0_vzeroupper): New insn_and_split pattern.
7123         (*call_pop_1_vzeroupper): Likewise.
7124         (*sibcall_pop_1_vzeroupper): Likewise.
7125         (*call_0_vzeroupper): Likewise.
7126         (*call_1_vzeroupper): Likewise.
7127         (*sibcall_1_vzeroupper): Likewise.
7128         (*call_1_rex64_vzeroupper): Likewise.
7129         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
7130         (*call_1_rex64_large_vzeroupper): Likewise.
7131         (*sibcall_1_rex64_vzeroupper): Likewise.
7132         (*call_value_pop_0_vzeroupper): Likewise.
7133         (*call_value_pop_1_vzeroupper): Likewise.
7134         (*sibcall_value_pop_1_vzeroupper): Likewise.
7135         (*call_value_0_vzeroupper): Likewise.
7136         (*call_value_0_rex64_vzeroupper): Likewise.
7137         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
7138         (*call_value_1_vzeroupper): Likewise.
7139         (*sibcall_value_1_vzeroupper): Likewise.
7140         (*call_value_1_rex64_vzeroupper): Likewise.
7141         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
7142         (*call_value_1_rex64_large_vzeroupper): Likewise.
7143         (*sibcall_value_1_rex64_vzeroupper): Likewise.
7144
7145 2010-11-02  Ian Lance Taylor  <iant@google.com>
7146
7147         PR lto/46273
7148         * config.gcc: Revert last patch: set lto_binary_reader.
7149
7150 2010-11-02  Richard Guenther  <rguenther@suse.de>
7151
7152         PR tree-optimization/46149
7153         * tree-ssa-structalias.c (get_constraint_fop_1): Properly handle
7154         non-indirect MEM_REF variants.
7155
7156 2010-11-02  Richard Guenther  <rguenther@suse.de>
7157
7158         PR tree-optimization/46216
7159         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
7160         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
7161
7162 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7163
7164         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
7165         (*-*-osf*): Likewise.
7166         * configure: Regenerate.
7167
7168 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
7169
7170         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
7171         for Intel Core 2 and Core i7.
7172
7173 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
7174
7175         Model decoder of Core 2/i7 for multipass scheduling.
7176
7177         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
7178         New type to hold target-specific data for multipass scheduling.
7179         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
7180         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
7181         Core 2/i7.
7182         (core2i7_secondary_decoder_max_insn_size,)
7183         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
7184         New static variables.
7185         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
7186         ([_]ix86_first_cycle_multipass_data): New static variable.
7187         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
7188         Implement targetm.sched hooks.
7189         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
7190         of ...
7191         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
7192         Implement new targetm.sched hooks.
7193         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
7194         targetm.sched hook to install multipass scheduling hooks on demand.
7195
7196         * doc/tm.texi.in: Document new targetm.sched hooks.
7197         * doc/tm.texi: Regenerate.
7198
7199         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
7200         (first_cycle_multipass_data_t): New typedef.
7201         (struct choice_entry: target_data): New field.
7202         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
7203         to allow target model restrictions not represented in DFA.
7204         (choose_ready, schedule_block): Update.
7205         (sched_extend_ready_list, sched_finish_ready_list): Call new target
7206         hooks to initialize target-specific data for multipass scheduling.
7207         * sched-int.h (max_issue): Update declaration.
7208         * sel-sched.c (choose_best_insn): Update.
7209         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
7210         (first_cycle_multipass_{init, fini}): Define and document new
7211         targetm.sched hooks.
7212
7213 2010-11-02  Richard Guenther  <rguenther@suse.de>
7214
7215         PR tree-optimization/46184
7216         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
7217         input vector type from the reduction operand as well.
7218
7219 2010-11-02  Richard Guenther  <rguenther@suse.de>
7220
7221         PR tree-optimization/46177
7222         * tree-loop-distribution.c (prop_phis): Use
7223         mark_virtual_phi_result_for_renaming.
7224
7225 2010-11-02  Martin Jambor  <mjambor@suse.cz>
7226
7227         PR middle-end/46120
7228         * tree.c (get_binfo_at_offset): Bail out on artificial
7229         fields.  Identify primary bases according to their offsets.
7230
7231 2010-11-02  Martin Jambor  <mjambor@suse.cz>
7232
7233         PR tree-optimization/45875
7234         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
7235         (gimple_get_relevant_ref_binfo): Detect primary bases according to
7236         their field offset.
7237
7238 2010-11-02  Ian Lance Taylor  <iant@google.com>
7239
7240         * doc/install.texi (Configuration): Note in two places that Java
7241         is not enabled by default.
7242
7243 2010-11-02  Ian Lance Taylor  <iant@google.com>
7244
7245         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
7246         (Configuration): Mention --disable-lto.  Remove --with-libelf
7247         paragraph.
7248
7249 2010-11-02  Ian Lance Taylor  <iant@google.com>
7250
7251         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
7252         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
7253         LIBELFINC.  Remove HAVE_libelf.
7254         * config.gcc: Don't set lto_binary_reader.
7255         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
7256         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
7257         (LIBS): Remove $(LIBELFLIBS).
7258         (INCLUDES): Remove $(LIBELFINC).
7259         * configure: Rebuild.
7260         * config.in: Rebuild.
7261
7262 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
7263
7264         * config/microblaze/microblaze-protos.h (function_arg): Delete.
7265         (function_arg_advance): Delete.
7266         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
7267         (FUNCTION_ARG): Delete.
7268         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
7269         (microblaze_function_arg_advance): ...this.  Make static.  Take a
7270         const_tree and a bool.
7271         (function-arg): Rename to...
7272         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
7273         and a bool.
7274         (microblaze_expand_prologue): Call targetm.calls.function_arg and
7275         targetm.calls.function_arg_advance.
7276         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7277
7278 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
7279
7280         Merge from FSF "apple/trunk" branch.
7281
7282         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
7283         * config/darwin.opt: .. to here.
7284         (matt-stubs): New option.
7285         * config/i386/darwin.opt: Delete.
7286         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
7287         (MACHO_DYNAMIC_NO_PIC_P): New.
7288         (MACHOPIC_INDIRECT): New.
7289         (MACHOPIC_PURE): New.
7290         * config/i386/darwin.h (DARWIN_X86) Define to 1.
7291         (MACHOPIC_ATT_STUB): New.
7292         (CC1_SPEC): Do not remove mdynamic-no-pic.
7293         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
7294         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
7295         (FUNCTION_PROFILER): Correct over-length line.
7296         (SUBTARGET_OVERRIDE_OPTIONS): New.
7297         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
7298         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
7299         (legitimate_constant_p): Handle mdynamic-no-pic.
7300         (ix86_legitimate_address_p): Likewise.
7301         (ix86_legitimize_address): Likewise.
7302         (ix86_expand_move): Likewise.
7303         (machopic_output_stub): Update for ATT-style stubs and
7304         mdynamic-no-pic.
7305         * config/darwin-protos.h (machopic_symbol_defined_p): New.
7306         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
7307         TARGET_DYNAMIC_NO_PIC: Remove.
7308         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
7309         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
7310         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
7311         Remove handling of mdynamic-no-pic.
7312         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
7313         Define if required.
7314         (machopic_symbol_defined_p): Do not try to use current_function_decl
7315         when generating _get_pc thunks within stubs.
7316         (machopic_indirect_data_reference): Rework for direct conditionals
7317         rather than #ifdefs, add x86 mdynamic-no-pic
7318         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
7319         defined value.
7320         (darwin_override_options): Handle mdynamic-no-pic here.
7321         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
7322         (machopic_lazy_symbol_ptr3_section): New.
7323         (machopic_picsymbol_stub2_section): New.
7324         (machopic_picsymbol_stub3_section): New.
7325         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
7326         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
7327         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
7328         Moved common definition from x86 and rs6000.
7329         (MACHO_DYNAMIC_NO_PIC_P): Override value.
7330         (MACHOPIC_INDIRECT): Likewise.
7331         (MACHOPIC_PURE): Likewise.
7332         * config.gcc (x86-darwin-*): Remove darwin.opt.
7333
7334 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
7335
7336         PR debug/46255
7337         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
7338         instead of gsi_last_bb.
7339
7340 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
7341             Maxim Kuvyrkov  <maxim@codesourcery.com>
7342
7343         * config/i386/i386.c (cpu_names): Add "corei7".
7344         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
7345
7346 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
7347             Maxim Kuvyrkov  <maxim@codesourcery.com>
7348
7349         Tune alignment for Intel Core i7
7350
7351         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
7352         (enum processor_type): Update comment.  Add entries for Core i7.
7353         * config/i386-c.c (ix86_target_macros_internal): Update.
7354         * config/i386.c (m_COREI7{_32,_64}): New macros.
7355         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
7356         (processor_target_table): Tune alignment for Core i7.
7357         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
7358
7359         * doc/invoke.texi: Document "corei7" option value.
7360
7361 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
7362             Maxim Kuvyrkov  <maxim@codesourcery.com>
7363             H.J. Lu  <hjl.tools@gmail.com>
7364
7365         Basic support for Intel Core i7
7366
7367         * i386.c (ix86_option_override_internal): Add entry for corei7, use
7368         generic tuning.  Use generic32 when compiling for 32-bit ABI.
7369
7370 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
7371
7372         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
7373         sections and call darwin_asm_dwarf_section() to handle them.
7374         (darwin_asm_dwarf_section): New.
7375         (darwin_file_start): Remove code emitting dwarf section symbols.
7376
7377 2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>
7378
7379         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
7380         explicitly disable stack protection when building libgcc.
7381         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
7382
7383 2010-11-01  Jason Merrill  <jason@redhat.com>
7384
7385         * fold-const.c (fold_indirect_ref_1): Handle folding
7386         POINTER_PLUS_EXPR to ARRAY_REF.
7387
7388 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
7389
7390         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
7391         (sh_delegitimize_address): New function.
7392
7393 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
7394
7395         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
7396         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
7397         (CC1_SPEC): Don't handle -target.
7398         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
7399         options.
7400         * config/darwin.opt (Zallowable_client, Zbundle_loader,
7401         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
7402         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
7403         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
7404         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
7405         Zweak_reference_mismatches, client_name, compatibility_version,
7406         current_version, dylinker_install_name, pagezero_size,
7407         read_only_relocs, seg1addr, segs_read_only_addr,
7408         segs_read_write_addr, sub_library, sub_umbrella): New.
7409         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
7410         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
7411         * config/freebsd.opt: New.
7412         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
7413         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
7414         * config/rpath.opt: New.
7415         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
7416         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
7417         Use rpath.opt.
7418
7419 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
7420
7421         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
7422         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
7423         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
7424         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
7425         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
7426         Document that options in .opt files do not need to be included.
7427         * doc/tm.texi: Regenerate.
7428         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
7429         * opts-common.c: Update comment on tm.h include.
7430         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
7431         * system.h (SWITCH_TAKES_ARG): Poison.
7432         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
7433         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
7434         in darwin.opt.
7435         (LINK_COMMAND_SPEC_A): Don't include %{x}.
7436         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
7437         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
7438         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
7439         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
7440         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
7441         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
7442         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
7443         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
7444         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
7445         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
7446         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
7447         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
7448         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
7449         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
7450         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
7451         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
7452         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
7453         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
7454         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
7455         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
7456         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
7457         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
7458         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
7459
7460 2010-11-01  Paul Koning  <ni1d@arrl.net>
7461
7462         * config/pdp11/pdp11.md: Use iterators.
7463         (addqi3, subqi3, iorsi3, xorsi3): Delete.
7464
7465 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
7466
7467         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
7468         GCC_INSN_FLAGS_H.
7469         * libgcov.c (__gcov_indirect_call_profiler): Set
7470         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
7471         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
7472
7473 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
7474
7475         PR tree-optimization/46259
7476
7477         Revert:
7478         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
7479         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
7480         build_vector_from_val.
7481
7482 2010-11-01  DJ Delorie  <dj@redhat.com>
7483
7484         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
7485         as well as an assertion.
7486
7487 2010-11-01  Paul Koning  <ni1d@arrl.net>
7488
7489         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
7490         complex modes in memory.
7491
7492 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
7493
7494         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
7495
7496 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
7497
7498         PR target/45250
7499         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
7500         (cfa_base_offset): New variable.
7501         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
7502         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
7503         is NULL.
7504         (vt_init_cfa_base): Initialize cfa_base_offset.
7505
7506 2010-11-01  Alan Modra  <amodra@gmail.com>
7507
7508         PR target/46030
7509         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
7510         and savres_strategy.
7511         (stack_info): New file scope var.
7512         (rs6000_init_machine_status): Init stack_info.
7513         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
7514         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
7515         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
7516         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
7517         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
7518         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
7519         (rs6000_savres_strategy): Rewrite.
7520         (rs6000_stack_info): Use "stack_info" in place of local "info".
7521         Return cached stack info when reload_completed unless ENABLE_CHECKING
7522         in which case confirm newly calculated stack info matches old info.
7523         Delay calculation of lr_save_p, set it for out of line gp save/restore
7524         as well as fp.  Call rs6000_savres_strategy from here..
7525         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
7526         (rs6000_output_function_prologue): Use info->savres_strategy to
7527         determine whether fp save/restore externs need to be emitted.
7528
7529 2010-10-31  Jason Merrill  <jason@redhat.com>
7530
7531         * tree.h (EXPR_LOC_OR_HERE): New macro.
7532         * builtins.c (c_strlen): Use it.
7533         * c-decl.c (build_enumerator): Likewise.
7534         * gimplify.c (internal_get_tmp_var): Likewise.
7535         (shortcut_cond_expr): Likewise.
7536         (gimplify_one_sizepos): Likewise.
7537
7538 2010-10-31  Richard Henderson  <rth@redhat.com>
7539
7540         * config/i386/cygming.h (TARGET_SEH): New.
7541         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
7542         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
7543         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
7544         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
7545         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
7546         (ASM_DECLARE_FUNCTION_SIZE): New.
7547         * config/i386/i386-protos.h: Update.
7548         * config/i386/i386.c (ix86_option_override_internal): Enable
7549         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
7550         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
7551         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
7552         (ix86_compute_frame_layout): For SEH, disable
7553         use_fast_prologue_epilogue, move frame pointer to the end of
7554         the frame.  Initialize hfp_save_offset.
7555         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
7556         at end of prologue for SEH.
7557         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
7558         emit blockage at beginning of epilogue.
7559         (ix86_expand_binary_operator): After reload, emit LEA if needed.
7560         (ix86_output_call_insn): New.
7561         * config/i386/i386.h (TARGET_SEH): New.
7562         (struct machine_function): Add member seh.
7563         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
7564         * config/i386/winnt.c (struct seh_frame_state): New.
7565         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
7566         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
7567         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
7568         i386_pe_start_function, i386_pe_end_function): New.
7569
7570         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
7571         as CFA_STORE in rules 12 and 13.
7572
7573 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
7574
7575         PR tree-optimization/46142
7576         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
7577         accommodate third function argument.
7578
7579 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
7580
7581         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
7582
7583 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
7584
7585         * fold-const.c (build_zero_vector): Use build_vector_from_val.
7586         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
7587         (get_initial_def_for_reduction): Likewise.
7588         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
7589         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
7590         * tree.c (build_one_cst): Likewise.
7591         (build_vector_from_val): Use types_compatible_p for assert.
7592
7593 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
7594
7595         * emit-rtl.c (mark_used_flags): New function.
7596         (set_used_flags, reset_used_flags): Call it.
7597
7598 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
7599
7600         PR middle-end/44569
7601         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
7602         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
7603
7604 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
7605
7606         PR target/46195
7607         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
7608         (ix86_compat_aligned_value_p): This.
7609         (ix86_old_function_arg_boundary): Renamed to ...
7610         (ix86_compat_function_arg_boundary): This.  Updated.
7611         (ix86_contains_aligned_value_p): New.
7612         (ix86_function_arg_boundary): Align long double parameters on
7613         stack to 4byte in 32bit.
7614
7615 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
7616
7617         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
7618         * c-parser.c (c_parser_objc_at_property_declaration): Removed
7619         parsing of RID_COPIES and RID_IVAR.  Updated call to
7620         objc_add_property_declaration.
7621         * c-typecheck.c (build_component_ref): Call
7622         objc_maybe_build_component_ref instead of objc_build_setter_call.
7623         Use objc_is_property_ref to improve Objective-C checks.
7624         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
7625         of objc_build_getter_call.
7626
7627 2010-10-29  Paul Koning  <ni1d@arrl.net>
7628
7629         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
7630         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
7631         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
7632         (REG_OK_STRICT): Move description.
7633
7634 2010-10-29  Paul Koning  <ni1d@arrl.net>
7635
7636         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
7637
7638 2010-10-29  Paul Koning  <ni1d@arrl.net>
7639
7640         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
7641
7642 2010-10-29  Paul Koning  <ni1d@arrl.net>
7643
7644         PR/41822
7645         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
7646
7647 2010-10-29  Richard Henderson  <rth@redhat.com>
7648
7649         PR rtl-opt/46226
7650         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
7651         for asm goto.
7652
7653 2010-10-29  Paul Koning  <ni1d@arrl.net>
7654
7655         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
7656         register to register move.
7657
7658 2010-10-29  Paul Koning  <ni1d@arrl.net>
7659
7660         * config/pdp11/pdp11.c (print_operand_address): Correct handling
7661         of integer constant addresses, delete vax-only logic.
7662
7663 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
7664
7665         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
7666         a conditional expression.
7667
7668 2010-10-29  Paul Koning  <ni1d@arrl.net>
7669
7670         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
7671         instruction encoding.
7672
7673 2010-10-29  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
7674             Andrew Pinski  <pinskia@gmail.com>
7675
7676         * tree.h (build_vector_from_val): Declare.
7677         * tree.c (build_vector_from_val): New function.
7678         * c-typeck.c (build_binary_op): Handle vector shifting.
7679         * doc/extend.texi: Description of the vector shifting operation.
7680
7681 2010-10-29  Paul Koning  <pkoning@equallogic.com>
7682
7683         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
7684         pdp11_secondary_memory_needed): Declare.
7685         * config/pdp11/predicates.md (float_operand): New predicate.
7686         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
7687         (cbranchdf4, movdf): Change predicate.
7688         (movsf): Handle FPU register case.
7689         (truncdfsf2, extendsfdf2): Add FPU register case.
7690         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
7691         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
7692         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
7693         (pdp11_register_move_cost): Update cost matrix.
7694         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
7695         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
7696         pdp11_secondary_memory_needed): New function.
7697         (pdp11_return_in_memory): Add other float types.
7698         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
7699         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
7700         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
7701         REGISTER_MOVE_COST): Delete.
7702         (BASE_RETURN_VALUE_REG): Add other float types.
7703
7704 2010-10-29  Nick Clifton  <nickc@redhat.com>
7705
7706         * doc/invoke.texi: Document -mam34 and -mtune options.
7707         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
7708         (mn10300_tune_cpu): New variable.
7709         (mn10300_handle_option): Handle -mam34 and -mtune options.
7710         (mn10300_option_override): Convert tune string into tune cpu variable.
7711         (mn10300_legitimate_constant_p): Delete unused local variable.
7712         (is_load_insn): New function.
7713         (is_store_insn): New function.
7714         (mn10300_adjust_schedule_cost): New function.
7715         (TARGET_SCHED_ADJUST_COST): Define.
7716         * config/mn10300/mn10300.opt (mam34): New option.
7717         (mtune): New option.
7718         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
7719         (enum processor_type): Add AM34.
7720         (TARGET_AM34): Define.
7721         * config/mn10300/mn10300.md (attr cpu): Add am34.
7722         Add pipeline description.
7723         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
7724         Remove unneeded alternatives.  Add timing attribute.
7725         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
7726         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
7727         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
7728         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
7729         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
7730         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
7731         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
7732         float_conditional_branch, jump, indirect_jump, tablejump,
7733         call_internal, call_value_internal, zero_extendqisi2_am33,
7734         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
7735         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
7736         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
7737         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
7738         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
7739         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
7740         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
7741         return_internal_regs, store_movm, return, call_next_insn):
7742         Add timing attribute.
7743         (am33_subsi3): Add missing clobber of CC_REG.
7744         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
7745         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
7746         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
7747         extendqisi2): Fix predicates.
7748         (call_internal, call_internal_value): Separate alternatives.
7749         * config/mn10300/t-mn10300: Add AM34 multilib.
7750
7751 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
7752
7753         * config/sh/sh.c (sh_promote_function_mode): Use
7754         default_promote_function_mode if !sh_promote_prototypes.
7755
7756 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
7757
7758         * recog.c (split_all_insns): Remove dead code.
7759
7760 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7761
7762         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7763
7764 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7765
7766         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
7767         (FUNCTION_ARG_ADVANCE): Delete.
7768         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
7769         functions.
7770         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
7771         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
7772         (TARGET_FUNCTION_ARG_ADVANCE): Define.
7773
7774 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7775
7776         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
7777         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7778         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
7779         Take a const_tree and a bool.
7780         (mcore_function_arg_advance): New function.
7781         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7782
7783 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7784
7785         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
7786         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7787         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
7788         Take a const_tree and a bool.
7789         (mcore_function_arg_advance): New function.
7790         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7791
7792 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7793
7794         * config/h8300/h8300-protos.h (function_arg): Delete.
7795         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7796         * config/h8300/h8300.c (function_arg): Rename to...
7797         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
7798         a bool.
7799         (h8300_function_arg_advance): New function.
7800         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7801
7802 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7803
7804         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
7805         to...
7806         * config/arc/arc.c (arc_function_arg): ...here and...
7807         (arc_function_arg_advance): ...here.  New functions.
7808         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7809
7810 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7811
7812         * config/crx/crx-protos.h (crx_function_arg): Delete.
7813         (crx_function_arg_advance): Delete.
7814         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7815         * config/crx/crx.c (crx_function_arg): Make static.  Take a
7816         const_tree and a bool.
7817         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
7818         (enough_regs_for_param): Take a const_tree.
7819         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7820
7821 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7822
7823         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
7824         (m68hc11_function_arg_advance): Delete.
7825         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
7826         (FUNCTION_ARG_ADVANCE): Delete.
7827         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
7828         Take a const_tree and a bool.
7829         (m68hc11_function_arg_advance): Likewise.
7830         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7831
7832 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7833
7834         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
7835         (xstormy16_function_arg_advance): Delete.
7836         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
7837         (FUNCTION_ARG_ADVANCE): Delete.
7838         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
7839         Take a const_tree and a bool.
7840         (xstormy16_function_arg_advance): Likewise.  Return void, updating
7841         the CUM parameter instead.
7842         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7843
7844 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7845
7846         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
7847         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7848         (MOXIE_FUNCTION_ARG_SIZE): Move to...
7849         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
7850         (moxie_function_arg): Make static.  Take a const_tree and a bool.
7851         (moxie_function_arg_advance): New function.
7852         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7853
7854 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7855
7856         * config/mn10300/mn10300-protos.h (function_arg): Delete.
7857         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
7858         (FUNCTION_ARG_ADVANCE): Delete.
7859         * config/mn10300/mn10300.c (function_arg): Rename to...
7860         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
7861         and a bool.
7862         (mn10300_function_arg_advance): New function.
7863         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7864
7865 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7866
7867         * config/iq2000/iq2000-protos.h (function_arg): Delete.
7868         (function_arg_advance): Delete.
7869         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7870         * config/iq2000/iq2000.c (function_arg): Rename to...
7871         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
7872         a bool.
7873         (function_arg_advance): Rename to...
7874         (iq2000_function_arg_advance): ...this.  Make static.  Take a
7875         const_tree and a bool.
7876         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
7877         iq2000_function_arg.
7878         (iq2000_pass_by_reference): Call iq2000_function_arg).
7879         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7880
7881 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7882
7883         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
7884         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7885         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
7886         const_tree.
7887         (fr30_function_arg): New function.
7888         (fr30_function_arg_advance): New function.
7889         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7890
7891 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7892
7893         * config/frv/frv-protos.h (frv_function_arg): Delete.
7894         (frv_function_arg_advance): Delete.
7895         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7896         * config/frv/frv.c (frv_function_arg): Rename to...
7897         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
7898         (frv_function_arg, frv_function_incoming_arg): New functions.
7899         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
7900         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
7901         (TARGET_FUNCTION_ARG_ADVANCE): Define.
7902
7903 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
7904
7905         PR target/46153
7906         * config/i386/sse.md (sse_movhlps_exp): Use destination
7907         returned from ix86_fixup_binary_operands to expand insn.
7908         (sse_movlhps_exp): Ditto.
7909         (sse_loadhps_exp): Ditto.
7910         (sse_loadlps_exp): Ditto.
7911         (sse2_loadhpd_exp): Ditto.
7912         (sse2_loadlpd_exp): Ditto.
7913
7914 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
7915
7916         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
7917         constants in thumb2.
7918
7919 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
7920
7921         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
7922         arithmetics in masking operations.
7923         (contains_muldiv): Likewise.
7924         (try_combine): Likewise.
7925         (find_split_point): Likewise.
7926         (combine_simplify_rtx): Likewise.
7927         (simplify_if_then_else): Likewise.
7928         (simplify_set): Likewise.
7929         (expand_compound_operation): Likewise.
7930         (expand_field_assignment): Likewise.
7931         (make_extraction): Likewise.
7932         (extract_left_shift): Likewise.
7933         (make_compound_operation): Likewise.
7934         (force_to_mode): Likewise.
7935         (make_field_assignment): Likewise.
7936         (reg_nonzero_bits_for_combine): Likewise.
7937         (simplify_shift_const_1): Likewise.
7938         (simplify_comparison): Likewise.
7939
7940 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
7941
7942         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
7943         (ia64_function_arg_advance): Delete.
7944         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
7945         (FUNCTION_ARG_ADVANCE): Delete.
7946         * config/ia64/ia64.c (ia64_function_arg): Rename to...
7947         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
7948         bool arguments.
7949         (ia64_function_arg, ia64_function_incoming_arg): New functions.
7950         (ia64_function_arg_advance): Make static.  Take a const_tree and
7951         a bool.
7952         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
7953         (TARGET_FUNCTION_ARG_ADVANCE): Define.
7954
7955 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
7956
7957         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
7958         (TARGET_GET_RAW_ARG_MODE): New.
7959         * doc/tm.texi: Regenerate.
7960         * target.def (get_raw_result_mode): New.
7961         (get_raw_arg_mode): New.
7962         * targhooks.c (default_get_reg_raw_mode): New.
7963         * targhooks.h (default_get_reg_raw_mode): New.
7964         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
7965         (apply_result_size): Ditto.
7966         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
7967         (TARGET_GET_RAW_RESULT_MODE): Define.
7968         (TARGET_GET_RAW_ARG_MODE): Ditto.
7969
7970 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
7971
7972         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
7973         for newer Solaris 10 release.
7974         (sparc_fallback_frame_state): Likewise.
7975
7976 2010-10-27  Jason Merrill  <jason@redhat.com>
7977
7978         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
7979         variables sooner.
7980
7981 2010-10-27  Jie Zhang  <jie@codesourcery.com>
7982             Maxim Kuvyrkov  <maxim@codesourcery.com>
7983
7984         * haifa-sched.c (ISSUE_POINTS): Remove.
7985         (max_issue): Don't issue more than issue_rate instructions.
7986
7987 2010-10-27  Ian Lance Taylor  <iant@google.com>
7988
7989         PR target/46197
7990         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
7991         (split_stack_return): Replace UNSPEC_STACK_CHECK with
7992         UNSPECV_SPLIT_STACK_RETURN.
7993
7994 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
7995
7996         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
7997
7998         * config/i386/i386.c (block_info): New.
7999         (BLOCK_INFO): Likewise.
8000         (call_avx256_state): Likewise.
8001         (check_avx256_stores): Likewise.
8002         (move_or_delete_vzeroupper_2): Likewise.
8003         (move_or_delete_vzeroupper_1): Likewise.
8004         (move_or_delete_vzeroupper): Likewise.
8005         (use_avx256_p): Likewise.
8006         (function_pass_avx256_p): Likewise.
8007         (flag_opts): Add -mvzeroupper.
8008         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
8009         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
8010         is disabled.
8011         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
8012         generate vzeroupper.
8013         (init_cumulative_args): Add an int to indicate caller.  Set
8014         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
8015         based on return type.
8016         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
8017         caller_pass_avx256_p based on argument type.
8018         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
8019         is used, but not returned by caller.
8020         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
8021         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
8022         is used.
8023         (ix86_minimum_alignment): Likewise.
8024         (ix86_expand_special_args_builtin): Set target to
8025         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
8026         (ix86_reorg): Run the vzeroupper optimization if needed.
8027
8028         * config/i386/i386.h (ix86_args): Add caller.
8029         (INIT_CUMULATIVE_ARGS): Updated.
8030         (machine_function): Add use_vzeroupper_p, use_avx256_p,
8031         caller_pass_avx256_p, caller_return_avx256_p,
8032         callee_pass_avx256_p and callee_return_avx256_p.
8033
8034         * config/i386/i386.opt (-mvzeroupper): New.
8035
8036         * config/i386/predicates.md (vzeroupper_operation): Removed.
8037
8038         * config/i386/sse.md (avx_vzeroupper): Removed.
8039         (*avx_vzeroupper): Removed.
8040         (avx_vzeroupper): New.
8041
8042         * doc/invoke.texi: Document -mvzeroupper.
8043
8044 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
8045
8046         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
8047         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
8048         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
8049
8050 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
8051             Olivier Hainque  <hainque@adacore.com>
8052
8053         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
8054         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
8055         fs->signal_frame instead.
8056
8057 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
8058
8059         * c-parser.c (cp_parser_objc_at_property_declaration): Removed
8060         parsing of RID_COPIES and RID_IVAR.
8061
8062 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
8063
8064         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
8065         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
8066         Do not use objc_set_property_attr, but use local variables
8067         instead.  Detect repeated usage of setter, getter and ivar
8068         attributes.  Improved error processing when a setter name does not
8069         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
8070         that the token is a keyword.  Updated call to
8071         objc_add_property_declaration.
8072
8073 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
8074
8075         * c-parser.c (c_parser_objc_at_property): Renamed to
8076         c_parser_objc_at_property_declaration.  Updated calls to
8077         objc_add_property_variable, now objc_add_property_declaration.
8078         Code rewritten to be much more robust in recovering from syntax
8079         errors.  Added comments.
8080         (c_parser_objc_property_attrlist): Removed.
8081         (c_parser_external_declaration): Updated calls to
8082         c_parser_objc_at_property, now
8083         c_parser_objc_at_property_declaration.
8084         (c_parser_objc_methodprotolist): Same change.
8085
8086 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
8087
8088         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
8089
8090 2010-10-26  Jan Hubicka  <jh@suse.cz>
8091
8092         * ipa.c (process_references): Enqueue all referenced nodes;
8093         mark as reachable only non-external nodes.
8094         (cgraph_remove_unreachable_nodes): All referenced nodes should
8095         be enqueued; remove bogues node->needed check.
8096
8097 2010-10-26  Jan Hubicka  <jh@suse.cz>
8098
8099         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
8100         to represent OMP.
8101
8102 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
8103
8104         * config/i386/i386.md (split_stack_return): Replace
8105         unspec_volatile with unspec.
8106
8107 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
8108
8109         * doc/install.texi: Fix typo in --with-sysroot description.
8110
8111 2010-10-26  Jan Hubicka  <jh@suse.cz>
8112
8113         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
8114         Use info provided by linker plugin.
8115
8116 2010-10-26  Jason Merrill  <jason@redhat.com>
8117
8118         * varasm.c (constructor_static_from_elts_p): Don't require a
8119         CONSTRUCTOR to have elements to be suitable for static
8120         initialization.  Allow ARRAY_TYPE as well.
8121
8122 2010-10-26  Jan Hubicka  <jh@suse.cz>
8123
8124         PR middle-end/45736
8125         * cgraph.c (cgraph_set_readonly_flag): Rename to...
8126         (cgraph_set_const_flags) ... this one; get also looping argument;
8127         clear constructor/destructor flags.
8128         (cgraph_set_pure_flag): Likewise.
8129         (cgraph_set_looping_const_or_pure_flag): Remove.
8130         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
8131         to optimize away static ctors/dtors; it does not work on inline clones;
8132         external functions can always be rmeoved.
8133         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
8134         inline clones; in LTO external functions always can go.
8135         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
8136         (cgraph_mark_address_taken_node): Assert that we are not taking
8137         address of inline clone.
8138         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
8139         external functions.
8140         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
8141         address taken.
8142         (ipcp_initialize_node_lattices): Only local functions can be
8143         handled without cloning.
8144         * cgraph.h (cgraph_set_readonly_flag,
8145         cgraph_set_looping_const_or_pure_flag): Remove.
8146         (cgraph_set_const_flag): Declare.
8147         (cgraph_set_pure_flag): Update.
8148         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
8149         flags setting code.
8150         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
8151         look at inline clones; fix handling of external definitions.
8152         (cgraph_postorder): Do not look at inline clones in the first pass.
8153         (function_and_variable_visibility): Drop constructors/destructor
8154         flags at pure and const functions.
8155         * tree-profile.c (tree_profiling): Update.
8156         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
8157         address taken; external functions do not account to whole program size.
8158         (cgraph_decide_inlining): Likewise; do not try to inline
8159         functions already inlined.
8160
8161 2010-10-26  Jie Zhang  <jie@codesourcery.com>
8162
8163         * doc/invoke.texi: Improve documentation of
8164         -fstrict-volatile-bitfields.
8165
8166 2010-10-26  Ira Rosen  <irar@il.ibm.com>
8167
8168         PR tree-optimization/46167
8169         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
8170         is basic block for the statement.
8171
8172 2010-10-26  Paul Koning  <ni1d@arrl.net>
8173
8174         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
8175         current definition of struct_real_format.
8176
8177 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
8178
8179         PR target/44948
8180         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
8181         (ix86_function_arg_boundary): Always align parameters on stack
8182         in 64bit and align parameters with alignment >= 16byte on stack
8183         in 32bit.  Warn alignment change.
8184
8185 2010-10-26  Ian Lance Taylor  <iant@google.com>
8186
8187         PR middle-end/45687
8188         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
8189         offset.
8190
8191 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
8192
8193         Implement opaque-enum-specifiesr for C++0x
8194         * tree.h (ENUM_IS_OPAQUE): New.
8195         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
8196
8197 2010-10-26  Jie Zhang  <jie@codesourcery.com>
8198
8199         * stor-layout.c (layout_decl): Use the field's type to
8200         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
8201         * config/arm/arm.c (arm_override_options): Default to
8202         -fstrict-volatile-bitfields.
8203
8204 2010-10-25  Paul Koning  <ni1d@arrl.net>
8205
8206         * config/pdp11/pdp11.md: Add define_constants for register
8207         numbers, branch offset limits.
8208         * config/pdp11/pdp11.c: Use named constants instead of numbers.
8209         * config/pdp11.pdp11.h: Ditto.
8210
8211 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
8212
8213         * configure.ac: Use $cpu_type instead of $target to define the nop.
8214         * configure: Regenerate.
8215
8216 2010-10-25  Jie Zhang  <jie@codesourcery.com>
8217
8218         * combine.c (try_combine): If insns need to be kept around, check that
8219         they can be copied in the merged instruction.
8220
8221 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
8222
8223         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
8224         has been modified.
8225         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
8226         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
8227         it has been modified.
8228
8229 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
8230
8231         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
8232
8233 2010-10-24  Paul Koning  <ni1d@arrl.net>
8234
8235         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
8236         * config/pdp11/pdp11.c (output_jump): Ditto.
8237
8238 2010-10-24  Ian Lance Taylor  <iant@google.com>
8239
8240         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
8241
8242 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
8243
8244         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
8245         least one insn with a locus corresponding to an edge's goto_locus,
8246         disregard non-fallthru edges to the exit block and merge the blocks
8247         created for the same goto_locus.
8248
8249 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
8250
8251         * gcc.c (n_switches_alloc_debug_check): New.
8252         (set_option_handlers): New.
8253         (process_command): Use set_option_handlers.
8254         (do_self_spec): Pass spec-generated options through option handlers.
8255         (main): Also save and restore n_switches_alloc when swapping
8256         switch arrays.
8257
8258 2010-10-23  Richard Henderson  <rth@redhat.com>
8259
8260         PR target/46144
8261         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
8262         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
8263         Honor matching operands when splitting to XOR.
8264
8265 2010-10-23  Ian Lance Taylor  <iant@google.com>
8266
8267         * tree-vrp.c (extract_range_from_binary_expr): If
8268         flag_non_call_exceptions don't eliminate division by zero.
8269         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
8270
8271 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
8272
8273         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
8274         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
8275         __ORDER_PDP_ENDIAN__.
8276         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8277         (struct DWstruct): Define based on __BYTE_ORDER__.
8278         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8279         (struct INTstruct): Define based on __BYTE_ORDER__.
8280         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8281         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
8282         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
8283         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8284         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8285         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8286         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8287         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8288         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8289         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8290         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8291         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8292         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8293         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8294         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8295         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8296         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8297         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8298         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8299         * doc/tm.texi: Regenerate.
8300         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
8301         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
8302
8303 2010-10-23  Jie Zhang  <jie@codesourcery.com>
8304
8305         PR rtl-optimization/37360
8306         * config/mips/mips.c (cached_can_issue_more): New local variable.
8307         (mips_sched_reorder_1): New.
8308         (mips_sched_reorder): Use mips_sched_reorder_1.
8309         (mips_sched_reorder2): New.
8310         (mips_variable_issue): Set cached_can_issue_more.
8311         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
8312         instead of mips_sched_reorder.
8313
8314         Revert:
8315         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
8316         PR rtl-optimization/37360
8317         * haifa-sched.c (max_issue): Do not assert that we never issue more
8318         insns than issue_rate.  Add comment.
8319
8320 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
8321
8322         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
8323         location info of the expression.
8324
8325 2010-10-22  DJ Delorie  <dj@redhat.com>
8326
8327         * doc/extend.texi (Named Address Spaces): Document the M32C named
8328         address space.
8329
8330         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
8331         __far address space.
8332         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
8333         "__far" address space for R8C and M16C processor variants.
8334         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
8335         (far_addr_space_p): New.
8336         (encode_pattern_1): Add sign and zero extend support.
8337         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
8338         (m32c_extra_constraint_p2): Add SF constraint.
8339         (m32c_legitimate_address_p): Support __far addresses.
8340         (m32c_addr_space_pointer_mode): New.
8341         (m32c_addr_space_address_mode): New.
8342         (m32c_addr_space_legitimate_address_p): New.
8343         (m32c_addr_space_legitimize_address): New.
8344         (m32c_addr_space_subset_p): New.
8345         (m32c_addr_space_convert): New.
8346         (conversions): Add __far operand patterns.
8347         (m32c_prepare_move): Force constants into registers for __far moves.
8348         (m32c_split_move): __far moves are always split.
8349         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
8350         * config/m32c/mov.md (mov<mode>_far_op1): New.
8351         (mov<mode>_far_op2): New.
8352         (movqi_op): Add __far (SF) support.
8353         (movhi_op): Likewise.
8354         (movsi_splittable): Split A1A0 also.
8355
8356 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
8357             Andrew Pinski  <pinskia@gmail.com>
8358
8359         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
8360         * doc/extend.texi: New paragraph
8361
8362 2010-10-22  Paul Koning  <ni1d@arrl.net>
8363
8364         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
8365
8366 2010-10-22  DJ Delorie  <dj@redhat.com>
8367
8368         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
8369
8370 2010-10-22  Paul Koning  <ni1d@arrl.net>
8371
8372         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
8373
8374 2010-10-22  Richard Henderson  <rth@redhat.com>
8375
8376         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
8377         cases for __builtin_fma and __builtin_fmaf.
8378
8379 2010-10-22  Richard Henderson  <rth@redhat.com>
8380
8381         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
8382         NEG+USE for vectors as well.
8383         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
8384         and splitter.
8385
8386 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
8387
8388         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
8389         SWITCH_CURTAILS_COMPILATION): Remove.
8390         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
8391         * doc/tm.texi: Regenerate.
8392         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
8393
8394 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
8395
8396         * config/i386/bdver1.md: New file.
8397         * config/i386/i386.md (include "bdver1.md"): Invoke the
8398         pipeline description for bdver1.
8399         (x86_sahf_1): Add "bdver1_decode" attribute.
8400         (*cmpfp_i_mixed): Likewise.
8401         (*cmpfp_i_sse): Likewise.
8402         (*cmpfp_i_i387): Likewise.
8403         (*cmpfp_iu_mixed): Likewise.
8404         (*cmpfp_iu_sse): Likewise.
8405         (*cmpfp_iu_387): Likewise.
8406         (*swap<mode>,*swap<mode>_1): Likewise.
8407         (fixuns_trunc<mode>hi2): Likewise.
8408         (fix_trunc<mode>si_sse): Likewise.
8409         (x86_fnstcw_1): Likewise.
8410         (x86_fldcw_1): Likewise.
8411         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
8412         (*floatsi<mode>2_vector_mixed): Likewise.
8413         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
8414         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
8415         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
8416         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
8417         (*floatsi<mode>2_vector_sse): Likewise.
8418         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
8419         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
8420         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
8421         (*mul<mode>3_1): Likewise.
8422         (*mulsi3_1_zext): Likewise.
8423         (*mulhi3_1): Likewise.
8424         (*mulqi3_1): Likewise.
8425         (*<u>mul<mode><dwi>3_1): Likewise.
8426         (*<u>mulqihi3_1): Likewise.
8427         (*<s>muldi3_highpart_1): Likewise.
8428         (*<s>mulsi3_highpart_1): Likewise.
8429         (*<s>mulsi3_highpart_zext): Likewise.
8430         (x86_64_shld): Likewise.
8431         (x86_shld): Likewise.
8432         (x86_64_shrd): Likewise.
8433         (x86_shrd): Likewise.
8434         (sqrtxf2): Likewise.
8435         (sqrt_extend<mode>xf2_i387): Likewise.
8436         (*sqrt<mode>2_sse): Likewise.
8437         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
8438         (sse_cvtsi2ssq): Likewise.
8439         (sse_cvtss2si): Likewise.
8440         (sse_cvtss2si_2): Likewise.
8441         (sse_cvtss2siq): Likewise.
8442         (sse_cvtss2siq_2): Likewise.
8443         (sse_cvttss2si): Likewise.
8444         (sse_cvttss2siq): Likewise.
8445         (sse2_cvtpi2pd): Likewise.
8446         (sse2_cvttpd2pi): Likewise.
8447         (sse2_cvtsi2sd): Likewise.
8448         (sse2_cvtsi2sdq): Likewise.
8449         (sse2_cvtsd2si): Likewise.
8450         (sse2_cvtsd2si_2): Likewise.
8451         (sse2_cvtsd2siq): Likewise.
8452         (sse2_cvtsd2siq_2): Likewise.
8453         (sse2_cvttsd2si): Likewise.
8454         (sse2_cvttsd2siq): Likewise.
8455         (*sse2_cvtpd2dq): Likewise.
8456         (*sse2_cvttpd2dq): Likewise.
8457         (sse2_cvtsd2ss): Likewise.
8458         (sse2_cvtss2sd): Likewise.
8459         (*sse2_cvtpd2ps): Likewise.
8460         (sse2_cvtps2pd): Likewise.
8461
8462 2010-10-22  Richard Guenther  <rguenther@suse.de>
8463
8464         PR middle-end/46137
8465         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
8466         remove the virtual operands if they are not needed.
8467
8468 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
8469
8470         * config/i386/i386.c (processor_costs bdver1_cost): Update
8471         insn costs and architectural parameters for bdver1.
8472
8473 2010-10-22  Richard Guenther  <rguenther@suse.de>
8474
8475         * gimple.h (gimple_register_canonical_type): Declare.
8476         * gimple.c (gimple_canonical_types): New global hashtable.
8477         (struct gimple_type_leader_entry_s): New type.
8478         (gimple_type_leader): New global cache.
8479         (gimple_lookup_type_leader): New function.
8480         (gtc_visit): Query the proper cache.
8481         (gimple_types_compatible_p): Likewise.
8482         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
8483         (gimple_canonical_type_eq): New function.
8484         (gimple_register_canonical_type): Likewise.
8485         (print_gimple_types_stats): Adjust for gimple_canonical_types.
8486         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
8487         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
8488         gimple_types_compatible_p for LTO.
8489
8490 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
8491
8492         PR target/46098
8493         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
8494         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
8495         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
8496         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
8497         (<sse>_movu<ssemodesuffix>): New expander.
8498         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
8499         (avx_movdqu<avxmodesuffix>): New expander.
8500         (*sse2_movdqu): Rename from sse2_movdqu.
8501         (sse2_movdqu): New expander.
8502
8503 2010-10-22  Richard Guenther  <rguenther@suse.de>
8504
8505         PR tree-optimization/45720
8506         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
8507         Handle negative step.
8508         (vect_enhance_data_refs_alignment): Likewise.
8509         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
8510         (vect_create_cond_for_align_checks): Likewise.
8511         (vect_create_cond_for_alias_checks): Likewise.
8512
8513 2010-10-22  Ira Rosen  <irar@il.ibm.com>
8514
8515         PR tree-optimization/46126
8516         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
8517         vectorizable_shift in case of basic block vectorization.
8518
8519 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
8520
8521         * target.h (enum opt_levels, struct default_options): New.
8522         * target.def (handle_ofast): Remove hook.
8523         (target_option.optimization): Change to
8524         target_option.optimization_table.
8525         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
8526         TARGET_OPTION_OPTIMIZATION_TABLE.
8527         (CAN_DEBUG_WITHOUT_FP): Remove.
8528         * doc/tm.texi: Regenerate.
8529         * opts.c (maybe_default_option, maybe_default_options,
8530         default_options_table): New.
8531         (default_options_optimization): Take extra parameters.  Don't
8532         assert that global_options and global_options_set are in use.  Use
8533         maybe_default_options.
8534         (decode_options): Pass extra parameters to
8535         default_options_optimization.
8536         * common.opt (falign-loops): Use value 0 with Var.
8537         (frerun-cse-after-loop, ftree-ter): Remove Init.
8538         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
8539         TARGET_OPTION_OPTIMIZATION): Remove.
8540         * targhooks.c (empty_optimization_table): New.
8541         * targhooks.h (empty_optimization_table): Declare.
8542         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
8543         * config/alpha/alpha.c (alpha_option_optimization_table,
8544         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8545         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
8546         * config/arm/arm.c (arm_option_optimization: Change to
8547         arm_option_optimization_table.
8548         (TARGET_OPTION_OPTIMIZATION): Change to
8549         TARGET_OPTION_OPTIMIZATION_TABLE.
8550         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
8551         * config/avr/avr.c (avr_option_optimization_table,
8552         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8553         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
8554         * config/cris/cris.c (cris_option_optimization): Change to
8555         cris_option_optimization_table.
8556         (TARGET_OPTION_OPTIMIZATION): Change to
8557         TARGET_OPTION_OPTIMIZATION_TABLE.
8558         * config/crx/crx.c (crx_option_optimization): Change to
8559         crx_option_optimization_table.
8560         (TARGET_OPTION_OPTIMIZATION): Change to
8561         TARGET_OPTION_OPTIMIZATION_TABLE.
8562         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
8563         * config/fr30/fr30.c (fr30_option_optimization_table,
8564         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8565         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
8566         * config/frv/frv.c (frv_option_optimization_table,
8567         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8568         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
8569         * config/h8300/h8300.c (h8300_option_optimization): Change to
8570         h8300_option_optimization_table.
8571         (TARGET_OPTION_OPTIMIZATION): Change to
8572         TARGET_OPTION_OPTIMIZATION_TABLE.
8573         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
8574         * config/i386/i386.c (ix86_option_optimization): Change to
8575         ix86_option_optimization_table.
8576         (TARGET_OPTION_OPTIMIZATION): Change to
8577         TARGET_OPTION_OPTIMIZATION_TABLE.
8578         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
8579         as initializer.
8580         * config/ia64/ia64.c (ia64_option_optimization): Change to
8581         ia64_option_optimization_table.
8582         (TARGET_OPTION_OPTIMIZATION): Change to
8583         TARGET_OPTION_OPTIMIZATION_TABLE.
8584         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
8585         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
8586         initializer.
8587         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
8588         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8589         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
8590         * config/lm32/lm32.c (lm32_option_optimization_table,
8591         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8592         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
8593         * config/m32r/m32r.c (m32r_option_optimization): Change to
8594         m32r_option_optimization_table.
8595         (TARGET_OPTION_OPTIMIZATION): Change to
8596         TARGET_OPTION_OPTIMIZATION_TABLE.
8597         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
8598         CAN_DEBUG_WITHOUT_FP): Remove.
8599         * config/mcore/mcore.c (mcore_option_optimization): Change to
8600         mcore_option_optimization_table.
8601         (TARGET_OPTION_OPTIMIZATION): Change to
8602         TARGET_OPTION_OPTIMIZATION_TABLE.
8603         * config/mep/mep.c (mep_option_optimization): Change to
8604         mep_option_optimization_table.
8605         (TARGET_OPTION_OPTIMIZATION): Change to
8606         TARGET_OPTION_OPTIMIZATION_TABLE.
8607         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
8608         * config/microblaze/microblaze.c
8609         (microblaze_option_optimization_table,
8610         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8611         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
8612         * config/mips/mips.c (mips_option_optimization_table,
8613         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8614         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
8615         * config/mmix/mmix.c (mmix_option_optimization): Change to
8616         mmix_option_optimization_table.
8617         (TARGET_OPTION_OPTIMIZATION): Change to
8618         TARGET_OPTION_OPTIMIZATION_TABLE.
8619         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
8620         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
8621         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8622         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
8623         * config/pa/pa.c (pa_option_optimization_table,
8624         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8625         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
8626         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
8627         pdp11_option_optimization_table.
8628         (TARGET_OPTION_OPTIMIZATION): Change to
8629         TARGET_OPTION_OPTIMIZATION_TABLE.
8630         * config/picochip/picochip.c (picochip_option_optimization_table,
8631         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8632         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
8633         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
8634         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8635         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
8636         * config/rx/rx.c (rx_option_optimization_table,
8637         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8638         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
8639         * config/s390/s390.c (s390_option_optimization): Change to
8640         s390_option_optimization_table.
8641         (s390_option_override): Update comment.
8642         (TARGET_OPTION_OPTIMIZATION): Change to
8643         TARGET_OPTION_OPTIMIZATION_TABLE.
8644         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
8645         * config/score/score.c (score_option_optimization_table,
8646         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8647         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
8648         * config/sh/sh.c (sh_option_optimization): Change to
8649         sh_option_optimization_table.
8650         (TARGET_OPTION_OPTIMIZATION): Change to
8651         TARGET_OPTION_OPTIMIZATION_TABLE.
8652         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
8653         (sh_option_override, expand_block_move, multcosts, find_barrier,
8654         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
8655         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
8656         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
8657         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
8658         instead of TARGET_SMALLCODE.
8659         * config/sh/sh.opt (mspace): Make into an alias for -Os.
8660         * config/sparc/sparc.c (sparc_option_optimization_table,
8661         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8662         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
8663         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
8664         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8665         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
8666         * config/v850/v850.c (v850_option_optimization): Change to
8667         v850_option_optimization_table.
8668         (TARGET_OPTION_OPTIMIZATION): Change to
8669         TARGET_OPTION_OPTIMIZATION_TABLE.
8670         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
8671         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
8672         xtensa_option_optimization_table.
8673         (TARGET_OPTION_OPTIMIZATION): Change to
8674         TARGET_OPTION_OPTIMIZATION_TABLE.
8675         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
8676
8677 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
8678
8679         Based on the CFString implementation in FSF apple/trunk branch.
8680
8681         * target.def (objc_construct_string): New Hook.
8682         * doc/tm.texi (objc_construct_string): Document.
8683         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
8684         * config/t-darwin: Amend build rules for darwin.o.
8685         * config/darwin.opt: Add cfstrings flags.
8686         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
8687         (darwin_objc_construct_string): New.
8688         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
8689         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
8690         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
8691         (darwin_fold_builtin): Likewise.
8692         (darwin_build_constant_cfstring): Likewise.
8693         (darwin_objc_construct_string): Likewise.
8694         (darwin_cfstring_p): Likewise.
8695         (darwin_enter_string_into_cfstring_table): Likewise.
8696         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
8697         * config/darwin.c (darwin_running_cxx): New var.
8698         (machopic_select_section): Return cfstring_constant_object_section.
8699         (darwin_override_options): Set darwin_running_cxx.
8700         (add_builtin_field_decl): New.
8701         (darwin_init_cfstring_builtins): New.
8702         (darwin_build_constant_cfstring): New.
8703         (darwin_fold_builtin): New.
8704         (cfstring_hash): New.
8705         (cfstring_eq): New.
8706         (darwin_enter_string_into_cfstring_table): New.
8707         * config/darwin-sections.def (cfstring_constant_object_section): New.
8708         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
8709         (TARGET_OBJC_CONSTRUCT_STRING): Define.
8710
8711 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8712
8713         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
8714         TYPE_STUB_DECL instead of TREE_CHAIN.
8715         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
8716         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
8717         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
8718         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
8719         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
8720         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
8721         Likewise.
8722         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
8723
8724 2010-10-22  Jie Zhang  <jie@codesourcery.com>
8725
8726         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
8727         (copy_blkmode_from_reg): Likewise.
8728         (read_complex_part): Likewise.
8729         (expand_expr_real_1): Calculate packedp and pass it to
8730         extract_bit_field.
8731         * expr.h (extract_bit_field): Update declaration.
8732         * calls.c (store_unaligned_arguments_into_pseudos): Update call
8733         to extract_bit_field.
8734         * expmed.c (extract_fixed_bit_field): Update calls to
8735         extract_fixed_bit_field.
8736         (store_split_bit_field): Likewise.
8737         (extract_bit_field_1): Add new argument packedp.
8738         (extract_bit_field): Add new argument packedp.
8739         (extract_fixed_bit_field): Add new argument packedp and let
8740         packed attribute override volatile.
8741         * stmt.c (expand_return): Update call to extract_bit_field.
8742
8743 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8744
8745         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
8746
8747 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8748
8749         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
8750         of gcc_checking_assert.
8751         * sel-sched.c (code_motion_process_successors): Likewise.
8752
8753 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
8754
8755         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
8756         when stopping because of a different locus on edge or insn.
8757         (try_optimize_cfg): Add comment.
8758         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
8759         block is a forwarder block, propagate locus on the edge.
8760         (cfg_layout_merge_blocks): Likewise.
8761
8762 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
8763
8764         PR target/45946
8765         * config/i386/i386.md (*pushti2): New insn pattern.
8766         (pushti2 splitter): New insn splitter.
8767         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
8768         DWI mode iterator.
8769
8770 2010-10-21  Paul Koning  <ni1d@arrl.net>
8771
8772         * config/pdp11/pdp11-protos.md (arith_operand,
8773         const_immediate_operand, expand_shift_operand,
8774         immediate15_operand): Delete
8775         * config/pdp11/pdp11.c: Ditto.
8776         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
8777         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
8778         EXTRA_CONSTRAINT): Delete.
8779         * config/pdp11/pdp11.md (various): Use standard constraints
8780         instead of removed ones.
8781         * config/pdp11/constraints.md: New file.
8782         * config/pdp11/predicates.md: New file.
8783
8784 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
8785
8786         PR c/45834
8787         * alias.c (true_dependence_1): Remove obsolete check for QImode.
8788         (may_alias_p): Ditto.
8789
8790 2010-10-21  Martin Jambor  <mjambor@suse.cz>
8791
8792         PR tree-optimization/45875
8793         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
8794
8795 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8796
8797         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
8798         variables.
8799         (create_new_def_for): Likewise.
8800
8801 2010-10-21  Nick Clifton  <nickc@redhat.com>
8802
8803         * config/mn10300/mn10300.c: Fold code to 80-character width.
8804         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
8805         MEM, CONST_INT and CONST_DOUBLE.
8806         (targetm): Move initialization to end of file.
8807         (print_operand): Rename to mn10300_print_operand.
8808         (print_operand_address): Rename to mn10300_print_operand_address.
8809         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
8810         (expand_prologue): Rename to mn10300_expand_prologue.
8811         (expand_epilogue): Rename to mn10300_expand_epilogue.
8812         (initial_offset): Rename to mn10300_initial_offset.
8813         (function_arg): Rename to mn10300_function_arg.
8814         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
8815         (symbolic_operand): Rename to mn10300_symbolic_operand.
8816         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
8817         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
8818         * config/mn10300/mn10300-protos.h: Update prototypes.
8819         * config/mn10300/mn10300.h: Fold code to 80-character width.
8820         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
8821         MEM, CONST_INT and CONST_DOUBLE.
8822         (CPP_SPEC): Move to...
8823         (TARGET_CPU_CPP_BUILTINS): ... here.
8824         * config/mn10300/mn10300.md: Fold code to 80-character width.
8825         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
8826         MEM, CONST_INT and CONST_DOUBLE.
8827
8828 2010-10-21  Ira Rosen  <irar@il.ibm.com>
8829
8830         PR tree-optimization/46049
8831         PR tree-optimization/46052
8832         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
8833         (vect_get_slp_defs): Add arguments.
8834         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
8835         operands to vect_get_slp_defs.
8836         (vectorizable_reduction): Fix comment, pass scalar operands to
8837         vect_get_slp_defs.
8838         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
8839         type to determine number of units in the created vector.
8840         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
8841         (vectorizable_conversion): Fix comment.
8842         (vectorizable_shift): New function.
8843         (vectorizable_operation): Move code that handles shifts to
8844         vectorizable_shift.
8845         (vectorizable_type_demotion): Fix comment, pass scalar operands to
8846         vect_get_slp_defs.
8847         (vectorizable_type_promotion, vectorizable_store): Likewise.
8848         (vectorizable_condition): Fix comment.
8849         (vect_analyze_stmt): Call vectorizable_shift.
8850         (vect_transform_stmt): Likewise.
8851         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
8852         Use it as the operand to create vectors for, except reduction
8853         initial definition and store.  Use operands type.
8854         (vect_get_slp_defs): Add new arguments.  Pass them to
8855          vect_get_constant_vectors.
8856
8857 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8858
8859         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
8860         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
8861         * cfghooks.c (fixup_reorder_chain): Likewise.
8862         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
8863         * cgraph.c (cgraph_add_thunk): Likewise.
8864         (cgraph_create_edge_1): Likewise.
8865         (cgraph_create_virtual_clone): Likewise.
8866         * ddg.c (add_cross_iteration_register_deps): Likewise.
8867         * dwarf2out.c (modified_type_die): Likewise.
8868         * emit-rtl.c (set_mem_alias_set): Likewise.
8869         * ggc-zone.c (zone_allocate_marks): Likewise.
8870         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
8871         * gimple.c (iterative_hash_gimple_type): Likewise.
8872         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
8873         (create_single_exit_edge): Likewise.
8874         * haifa-sched.c (choose_ready): Likewise.
8875         * lto-streamer-in.c (input_gimple_stmt): Likewise.
8876         * passes.c (execute_todo): Likewise.
8877         * sched-ebb.c (begin_schedule_ready): Likewise.
8878         * sel-sched.c (code_motion_process_successors): Likewise.
8879         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
8880         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
8881         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
8882         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
8883         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
8884         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
8885         (ssa_conflicts_add): Likewise.
8886         * tree-ssa-copy.c (replace_exp): Likewise.
8887         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
8888         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
8889         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
8890         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
8891         (compute_antic): Likewise.
8892         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
8893         (add_dependence): Likewise.
8894         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
8895         * tree-vrp.c (supports_overflow_infinity): Likewise.
8896         (make_overflow_infinity, negative_overflow_infinity): Likewise.
8897         (avoid_overflow_infinity, register_new_assert_for): Likewise.
8898         (process_assert_insertions_for): Likewise.
8899         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
8900         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
8901         (intersect_loc_chains, variable_merge_over_cur): Likewise.
8902
8903 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8904
8905         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
8906         * reload1.c (has_nonexceptional_receiver): Likewise.
8907         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
8908         (create_new_def_for): Likewise.
8909         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
8910         (merge_phi_nodes): Likewise.
8911         (has_abnormal_incoming_edge_p): Delete.
8912
8913 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
8914
8915         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
8916
8917 2010-10-21  Richard Guenther  <rguenther@suse.de>
8918             Michael Matz  <matz@suse.de>
8919
8920         PR tree-optimization/45764
8921         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
8922         Adjust initial misalignment for negative DR_STEP.
8923         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
8924         do not have the same alignment over the whole iteration domain.
8925
8926 2010-10-21  Richard Guenther  <rguenther@suse.de>
8927
8928         PR tree-optimization/46111
8929         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
8930
8931 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8932
8933         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
8934
8935 2010-10-21  Tristan Gingold  <gingold@adacore.com>
8936
8937         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
8938         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
8939
8940 2010-10-21  Tristan Gingold  <gingold@adacore.com>
8941
8942         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
8943         signal_frame.
8944         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
8945
8946 2010-10-21  Tristan Gingold  <gingold@adacore.com>
8947
8948         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
8949         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
8950
8951 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
8952
8953         * basic-block.h (find_fallthru_edge): Define.
8954         * cfgcleanup.c (merge_blocks_move): Use it.
8955         (try_crossjump_bb): Likewise.
8956         * cfglayout.c (fixup_reorder_chains): Likewise.
8957         (fixup_fallthru_exit_predecessor): Likewise.
8958         * cfgrtl.c (rtl_split_edge): Likewise.
8959         (rtl_verify_flow_info): Likewise.
8960         * function.c (thread_prologue_and_epilogue_insns): Likewise.
8961         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
8962         * ifcvt.c (block_fallthru): Likewise.
8963         * reload1.c (fixup_abnormal_edges): Likewise.
8964         * sched-ebb.c (being_schedule_ready): Likewise.
8965         (schedule_ebb): Likwise.
8966         * sched-rgn.c (find_single_block_region): Likewise.
8967         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
8968         * tree-complex.c (expand_complex_move): Likewise.
8969         * sched-int.h (find_fallthru_edge): Rename to...
8970         (find_fallthru_edge_from): ...this.
8971         * haifa-sched.c (find_fallthru_edge): Rename to...
8972         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
8973         (init_before_recovery): Call find_fallthru_edge_from.
8974         * sel-sched-ir.c (merge_fences): Likewise.
8975         * sel-sched.c (in_fallthru_bb_p): Likewise.
8976         (move_cond_jump): Likewise.
8977
8978 2010-10-20  Paul Koning  <ni1d@arrl.net>
8979
8980         * config/pdp11/pdp11.md (various): Fix conditions on a number of
8981         insn to check for target 11/40 or higher.
8982
8983 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
8984
8985         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
8986         bool instead of a tree.
8987         (c_parser_objc_method_decl): Added bool argument.  Updated call to
8988         objc_build_method_signature.
8989         (c_parser_objc_method_definition): Do not call
8990         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
8991         c_parser_objc_method_decl and objc_start_method_definition.
8992         (c_parser_objc_methodproto): Do not call objc_set_method_type.
8993         Updated calls to c_parser_objc_method_type,
8994         c_parser_objc_method_decl and objc_add_method_declaration.
8995
8996 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
8997
8998         PR tree-optimization/45919
8999         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
9000         array members.
9001
9002         PR tree-optimization/46066
9003         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
9004         instead of gsi_last_bb.
9005
9006 2010-10-20  DJ Delorie  <dj@redhat.com>
9007
9008         * config/m32c/m32c.c (m32c_option_override): Always disable
9009         function-cse in 16-bit mode.  Indirect calls are always worse than
9010         direct calls as there is no 16-bit indirect call opcode.
9011         (m32c_override_options_after_change): New, likewise.
9012
9013 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
9014
9015         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
9016         emitting the conditional move in the inner mode of the SUBREG.
9017
9018 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
9019
9020         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
9021         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
9022         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
9023         (ia64_preferred_reload_class): Make static.  Change rclass argument
9024         and result types from enum reg_class to reg_class_t.
9025
9026 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
9027
9028         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
9029         call for single operand expression.
9030
9031 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
9032
9033         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
9034         if there is a call statement to pure or const function in the block.
9035
9036 2010-10-20  Paul Koning  <pkoning@equallogic.com>
9037
9038         Fix several build errors for pdp11 target.
9039         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
9040         (cbranchdf4): Conditional on TARGET_FPU.
9041         (movdf): Ditto; correct alternatives check.
9042         (movmemhi): Fix predicate and constraint.
9043         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
9044
9045 2010-10-20  Richard Guenther  <rguenther@suse.de>
9046
9047         PR lto/45667
9048         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
9049         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
9050         (verify_gimple_assign_single): Disable ADDR_EXPR type check
9051         when in LTO.
9052
9053 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
9054
9055         PR fortran/42169
9056         * ira-emit.c (store_can_be_removed_p): Return false instead of
9057         gcc_unreachable.
9058
9059 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
9060
9061         * fold-const.c (fold_binary_loc): New transformation.
9062
9063 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
9064
9065         PR target/46085
9066         * config/i386/sse.md (reduc_splus_v8sf): Updated.
9067         (reduc_splus_v4df): Likewise.
9068
9069 2010-10-20  Richard Guenther  <rguenther@suse.de>
9070
9071         PR tree-optimization/45860
9072         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
9073         conditional store replacement for non-register type stores.
9074
9075 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
9076
9077         * stor-layout.c (skip_simple_constant_arithmetic): New function.
9078         (self_referential_size): Use it instead of skip_simple_arithmetic.
9079
9080 2010-10-20  Olivier Hainque  <hainque@adacore.com>
9081
9082         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
9083         If the current function calls eh_return, claim live all registers
9084         that we need to check for liveness otherwise.
9085
9086 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
9087
9088         * c-decl.c (c_write_global_declarations): Call
9089         objc_write_global_declarations when compiling Objective-C.
9090         * c-lang.c (finish_file): Removed.
9091
9092 2010-10-19  DJ Delorie  <dj@redhat.com>
9093
9094         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
9095         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
9096         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
9097         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
9098         * doc/tm.texi: Regenerate.
9099         * targhooks.h (default_label_align_after_barrier_max_skip,
9100         default_loop_align_max_skip, default_label_align_max_skip,
9101         default_jump_align_max_skip): Declare.
9102         * target.def (label_align_after_barrier_max_skip): New.
9103         (loop_align_max_skip): New.
9104         (label_align_max_skip): New.
9105         (jump_align_max_skip): New.
9106         * system.h (poison): Add those macros to the list.
9107         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
9108         (LOOP_ALIGN_MAX_SKIP): Remove.
9109         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
9110         (JUMP_ALIGN_MAX_SKIP): Remove.
9111         (default_label_align_after_barrier_max_skip): New.
9112         (default_loop_align_max_skip): New.
9113         (default_label_align_max_skip): New.
9114         (default_jump_align_max_skip): New.
9115         (compute_alignments): Use the new hooks.
9116         (shorten_branches): Likewise.
9117
9118 2010-10-19  Richard Henderson  <rth@redhat.com>
9119
9120         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
9121         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
9122         (fma4i_fmadd_<mode>): New.
9123         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
9124         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
9125         standard fma patterns.
9126         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
9127         enable for FMA.
9128         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
9129         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
9130         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
9131
9132 2010-10-19  Paul Koning  <pkoning@equallogic.com>
9133
9134         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
9135         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
9136
9137 2010-10-19  Richard Henderson  <rth@redhat.com>
9138
9139         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
9140         (fmadf4, *fmsdf4, *nfmadf4): New.
9141         (fmaxf4, *fmsxf4, *nfmaxf4): New.
9142
9143 2010-10-19  Michael Eager  <eager@eagercon.com>
9144
9145         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
9146         Use sjlj unwind info for exceptions.
9147
9148 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
9149
9150         PR fortran/43414
9151         * dwarf2out.c (add_calling_convention_attribute): Flag main
9152         Fortran subroutine with DW_AT_main_subprogram.
9153
9154 2010-10-19  Nick Clifton  <nickc@redhat.com>
9155
9156         * config/rx/rx.c (rx_function_value): Small integer types are
9157         promoted to SImode.
9158         (rx_promote_function_mode): New function.
9159         (TARGET_PROMOTE_FUNCTION_MODE): Define.
9160
9161 2010-10-19  Nick Clifton  <nickc@redhat.com>
9162
9163         * config/mep/mep.c (mep_print_operand): Use
9164         targetm.strip_name_encoding.
9165         (mep_output_aligned_common): Likewise.
9166
9167 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
9168
9169         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
9170
9171 2010-10-18  Richard Henderson  <rth@redhat.com>
9172
9173         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
9174         (fma (neg a) (neg b) c) and (fma a (neg b) c).
9175
9176 2010-10-18  Richard Henderson  <rth@redhat.com>
9177
9178         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
9179         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
9180         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
9181         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
9182         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
9183         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
9184         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
9185         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
9186         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
9187         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
9188         (bdesc_multi_arg): Remove the corresponding builtins.
9189         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
9190         (UNSPEC_FMA4_FMSUBADD): Remove.
9191         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
9192         * config/i386/sse.md (FMA4MODEF4): Remove.
9193         (FMAMODE): Add.
9194         (fma<mode>4): New expander.
9195         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
9196         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
9197         (*fma4i_fmsub_<mode>): Similarly.
9198         (*fma4i_fnmadd_<mode>): Similarly.
9199         (*fma4i_fnmsub_<mode>): Similarly.
9200         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
9201         with the first operand.
9202         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
9203         of explicit arithmetic.  Macroize with AVXMODEF2P.
9204         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
9205         (xop_frcz<mode>2): Macroize with FMAMODE.
9206         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
9207         the first operand.
9208         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
9209         extra negations.
9210         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
9211         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
9212         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
9213         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
9214         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
9215         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
9216         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
9217         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
9218
9219 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
9220
9221         PR rtl-optimization/45966
9222         * combine.c (try_combine): If added_sets_2, deal with the case
9223         where i0 feeds i1 and i1 feeds i2.
9224
9225 2010-10-18  Jan Hubicka  <jh@suse.cz>
9226
9227         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
9228         preserve flags before trying to guess on visibility.
9229         (varpool_externally_visible_p): New function.
9230         (function_and_variable_visibility): Use it.
9231
9232 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
9233
9234         Implemented parsing @synthesize and @dynamic for Objective-C.
9235         * c-parser.c (c_parser_external_declaration): Recognize
9236         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
9237         (c_parser_objc_at_synthesize_declaration): New.
9238         (c_parser_objc_at_dynamic_declaration): New.
9239
9240 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
9241
9242         * c-parser.c (c_parser_objc_class_declaration): After finding an
9243         error, parse the whole declaration then reset parser->error.
9244
9245 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
9246
9247         PR target/46041
9248         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
9249         * builtins.c (mode_has_fma): Ditto.
9250
9251 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
9252
9253         PR target/36898
9254         PR middle-end/43760
9255         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
9256
9257 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
9258
9259         * config/i386/i386.c (ix86_option_override_internal): Define and
9260         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
9261         default.
9262         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
9263         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
9264
9265 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
9266
9267         Merge from 'apple/trunk' branch on FSF servers.
9268         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
9269         following Objective-C change:
9270
9271         2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>
9272
9273         Radar 4301047
9274         * c-parse.in (objc_quals): Build objc qualifier list same way
9275         as gcc-3.3
9276
9277 2010-10-18  Jan Hubicka  <jh@suse.cz>
9278
9279         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
9280         function_and_variable_visibility): Revert accidental commit.
9281
9282 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
9283
9284         Merge from 'apple/trunk' branch on FSF servers.
9285         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
9286         the following Objective-C change:
9287
9288         2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>
9289
9290         Radar 4204796
9291         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
9292         'volatilized' type used in a typeof operator.
9293
9294 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
9295
9296         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
9297         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
9298         rewrite modelled on gimple_purge_dead_eh_edges.
9299         (gimple_purge_all_dead_abnormal_call_edges): New function.
9300         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
9301         directly instead of through gimple_purge_dead_abnormal_call_edges.
9302         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
9303         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
9304         removed AB side-effects from one of its statements.
9305         (init_pre): Initialize need_ab_cleanup.
9306         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
9307         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
9308
9309 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
9310
9311         PR c/46015
9312         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
9313         on computed goto argument.
9314
9315 2010-10-18  Richard Guenther  <rguenther@suse.de>
9316
9317         PR tree-optimization/45967
9318         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
9319         (could_have_pointers): Likewise.
9320         (handle_rhs_call, handle_const_call, handle_pure_call,
9321         find_func_aliases, intra_create_variable_infos): Remove calls to them.
9322         (struct fieldoff): Add must_have_pointers field.
9323         (type_must_have_pointers): New function.
9324         (field_must_have_pointers): Likewise.
9325         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
9326         Adjust field merging.
9327         (create_function_info_for): May-have-pointers of varinfo is
9328         almost always true.
9329         (create_variable_info_for_1): Likewise.
9330
9331 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
9332
9333         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
9334         of operands to vec_concat.
9335
9336 2010-10-18  Richard Guenther  <rguenther@suse.de>
9337
9338         PR lto/44950
9339         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
9340         also clear references to entries of it.
9341
9342 2010-10-18  Andi Kleen  <ak@linux.intel.com>
9343
9344         PR other/43448
9345         * gccbug.in: Remove.
9346         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
9347         (doc, distclean, install-common): Remove reference to gccbug.
9348         * configure: Regenerate.
9349         * configure.ac (all_outputs): Remove gccbug.
9350         * doc/configfiles.texi: Remove references to gccbug.
9351         * doc/sourcebuild.texi: Dito.
9352
9353 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
9354
9355         PR middle-end/46019
9356         * fold-const.c (fold_binary_loc): If integer_pow2p has
9357         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
9358
9359 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
9360             Jeremie Salvucci  <jeremie.salvucci@free.fr>
9361
9362         * gengtype.c (verbosity_level): Add variable.
9363         (set_gc_used): Count variables for verbosity.
9364         (close_output_files): Backing up files, counting written ones
9365         verbosily.
9366         (write_types): Count emitted functions for verbosity. Added
9367         debug messages.
9368         (write_enum_defn): Count structures for verbosity. Added debug
9369         messages.
9370         (gengtype_long_options): Add "verbose" & "backupdir".
9371         (print_usage): Ditto.
9372         (main): Verbose display of parsed files.
9373
9374         * gengtype.h (verbosity_level): Add declaration.
9375
9376 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
9377
9378         * gengtype.c (parse_program_options): Add allocation of
9379         plugin_files, and correct test on nb_plugin_files.
9380
9381 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
9382
9383         Merge from 'apple/trunk' branch on FSF servers.
9384
9385         2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>
9386
9387         Radar 4133425
9388         * c-decl.c (undeclared_variable): Issue diagnostic on
9389         private 'ivar' access.
9390
9391 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
9392
9393         PR target/46051
9394         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
9395         generated sequence to match *avx_vperm2f128<mode>_nozero.
9396         (vec_interleave_lowv4df): Ditto.
9397         (vec_interleave_highv8sf): Ditto.
9398         (vec_interleave_lowv8sf): Ditto.
9399
9400 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
9401
9402         * libgcov.c (create_file_directory): Enable it for win32 case.
9403         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
9404         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
9405         (GCOV_PREFIX_SKIP): Likewise.
9406
9407 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
9408
9409         * doc/objc.texi (GNU Objective-C runtime API): New section.
9410         (Modern GNU Objective-C runtime API): New section.
9411         (Traditional GNU Objective-C runtime API): New section.
9412         (Executing code before main): Mention that this section is
9413         specific to the GNU Objective-C runtime.
9414         (Garbage Collection): Same.
9415
9416 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
9417
9418         * c-parser.c (c_parser_for_statement): Move initialization of
9419         cond and incr before if.
9420
9421 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
9422
9423         * target.def (preferred_output_reload_class): New hook.
9424         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
9425         * doc/tm.texi: Regenerate.
9426         * targhooks.c (default_preferred_output_reload_class): New function.
9427         * targhooks.h (default_preferred_output_reload_class): Declare.
9428         * reload.c (find_dummy_reload): Change rclass argument type from
9429         enum reg_class to reg_class_t. Change this_alternative array type
9430         from enum reg_class to reg_class_t.
9431         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
9432         (push_reload): Change preferred_class variable type to reg_class_t.
9433         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
9434         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
9435         argument type from enum reg_class to reg_class_t. Use
9436         HARD_REGISTER_NUM_P predicate.
9437         * recog.h (reg_fits_class_p): Update prototype.
9438
9439         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
9440         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
9441         Remove.
9442         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
9443         static. Change regclass argument and result types from enum reg_class
9444         to reg_class_t.
9445         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
9446
9447 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
9448
9449         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
9450         visibility enum, and handle @package.
9451
9452 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
9453
9454         * doc/objc.texi (What you can and what you cannot do in +load):
9455         Document that sending messages to constant string objects in +load
9456         is not guaranteed to work.
9457
9458 2010-10-16  Jan Hubicka  <jh@suse.cz>
9459
9460         PR middle-end/44206
9461         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
9462         existence of refrences before removing the function.
9463
9464 2010-10-16  Jan Hubicka  <jh@suse.cz>
9465
9466         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
9467         only_called_at_startup and only_called_at_exit.
9468         (cgraph_propagate_frequency): Compute only_called_at_startup and
9469         only_called_at_exit.
9470         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
9471         only_called_at_exit.
9472         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
9473         flags.
9474         * predict.c (compute_function_frequency): Initialize the new flags.
9475
9476 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
9477
9478         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
9479         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
9480         on the bounds of its domain.
9481         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
9482
9483 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
9484
9485         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
9486         * config/avr/avr-protos.h (preferred_reload_class): Remove.
9487         * config/avr/avr.c (preferred_reload_class): Remove.
9488         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
9489         * config/pa/pa.c (emit_move_sequence): Update comment
9490         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
9491         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
9492         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
9493         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
9494         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
9495         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
9496         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
9497         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
9498         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
9499         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
9500         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
9501         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
9502         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
9503
9504 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
9505
9506         * opts.c (set_fast_math_flags,
9507         set_unsafe_math_optimizations_flags): Make static.
9508         * toplev.h (set_fast_math_flags,
9509         set_unsafe_math_optimizations_flags): Remove prototypes.
9510
9511 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
9512
9513         * config/arm/arm.c (arm_option_optimization): Set
9514         flag_section_anchors to 1 not 2.
9515         * config/i386/i386.c (ix86_option_override_internal): Check
9516         global_options_set.x_flag_zee and
9517         global_options_set.x_flag_omit_frame_pointer.
9518         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
9519         flag_zee to 2.
9520         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
9521         global_options_set.x_flag_omit_frame_pointer.
9522         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
9523         opts->x_flag_section_anchors to 1 not 2.
9524         * config/sh/sh.c (sh_option_optimization): Don't set
9525         flag_schedule_insns to 2.
9526         (sh_option_override): Check
9527         global_options_set.x_flag_schedule_insns.
9528         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
9529
9530 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
9531
9532         * configure.ac: Make sure inhibit_libc remains false for mingw targets
9533         as cross.
9534         * configure: Regenerated.
9535
9536 2010-10-15  Xinliang David Li  <davidxl@google.com>
9537
9538         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
9539         function.
9540         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
9541         into a recursive function.
9542
9543 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
9544
9545         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
9546         (*movdfcc_1): ditto.
9547
9548 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
9549
9550         * target.def (target_option.init_struct): New hook.
9551         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
9552         * doc/tm.texi: Regenerate.
9553         * hooks.c (hook_void_gcc_optionsp): New.
9554         * hooks.h (hook_void_gcc_optionsp): Declare.
9555         * langhooks-def.h (lhd_init_options_struct): Remove.
9556         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
9557         * langhooks.c (lhd_init_options_struct): Remove.
9558         * opts.c (init_options_struct): Also call
9559         targetm.target_option.init_struct.
9560         * config/i386/i386.c (ix86_option_init_struct,
9561         TARGET_OPTION_INIT_STRUCT): New.
9562         (ix86_option_optimization): Move some settings to
9563         ix86_option_init_struct.
9564         * config/pdp11/pdp11.c (pdp11_option_init_struct,
9565         TARGET_OPTION_INIT_STRUCT): New.
9566         (pdp11_option_optimization): Move some settings to
9567         pdp11_option_init_struct.
9568         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
9569         rs6000_option_init_struct.  Use options structure pointer.
9570         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
9571         * config/s390/s390.c (s390_option_init_struct,
9572         TARGET_OPTION_INIT_STRUCT): New.
9573         (s390_option_optimization): Don't set
9574         flag_asynchronous_unwind_tables here.
9575         * config/sh/sh.c (sh_option_init_struct,
9576         TARGET_OPTION_INIT_STRUCT): New.
9577         (sh_option_optimization): Don't set flag_finite_math_only here.
9578         * config/spu/spu.c (spu_option_optimization): Replace by
9579         spu_option_optimization.  Use options structure pointer.
9580         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
9581
9582 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
9583
9584         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
9585
9586         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
9587         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
9588         (Standard names): Document fma.
9589
9590         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
9591         __FP_FAST_FMAF, __FP_FAST_FMAL.
9592
9593         * builitns.c (expand_builtin_mathfn_ternary): New function for
9594         expanding ternary math functions, like fma.
9595         (expand_builtin): Call it for the fma builtins.
9596
9597         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
9598         ops at present.
9599
9600         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
9601         vectorizable functions to support vectorizing fma.
9602
9603         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
9604         Handle fma builtins.
9605
9606         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
9607         (UNSPEC_VSX_MSUB): Ditto.
9608         (UNSPEC_VSX_NMADD): Ditto.
9609         (UNSPEC_VSX_NMSUB): Ditto.
9610         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
9611         of UNSPEC. Renumber combiner patterns.
9612         (vsx_fmsub<mode>4*): Ditto.
9613         (vsx_fnmadd<mode>4*): Ditto.
9614         (vsx_fnmsub<mode>4*): Ditto.
9615
9616         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
9617         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
9618         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
9619         (altivec_vmaddfp_1): Ditto.
9620         (altivec_vmaddfp_2): Ditto.
9621         (atlivec_mulv4sf3): Ditto.
9622         (altivec_vnmsubfp): Ditto.
9623         (altivec_vnmsubfp_1): Ditto.
9624         (altivec_vnmsubfp_2): Ditto.
9625         (altivec_vnmsubfp_3): Delete.
9626
9627         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
9628         (fmasf4_fpr): Ditto.
9629         (fmssf4_fpr): Ditto.
9630         (fnmasf4_fpr): Ditto.
9631         (fnmssf4_fpr): Ditto.
9632         (fmadf4): Ditto.
9633         (fmadf4_fpr): Ditto.
9634         (fmsdf4_fpr): Ditto.
9635         (fnmadf4_fpr): Ditto.
9636         (fnmsdf4_fpr): Ditto.
9637
9638         * optabs.h (OTI_fma): Add fma optab.
9639         (fma_optab): Ditto.
9640
9641         * genopinit.c (optabs): Set fma optab.
9642
9643         * rtl.def (FMA): Add FMA rtl.
9644
9645         * tree.h (mode_has_fma): New function to return if MODE supports a
9646         fast multiply and add instruction.
9647         * builtins.c (mode_has_fma): Ditto.
9648
9649 2010-10-15  Jan Hubicka  <jh@suse.cz>
9650
9651         * lto-streamer-out.c (write_symbol): Use pointer set of seen
9652         objects instead of bitmap.
9653         (produce_symtab): Likewise; output defined symbols first.
9654
9655 2010-10-15  Jie Zhang  <jie@codesourcery.com>
9656
9657         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
9658         Option Summary and Index.
9659
9660 2010-10-15  Richard Guenther  <rguenther@suse.de>
9661
9662         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
9663         for automatic variables again.
9664
9665 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
9666
9667         * doc/extend.texi (Variable Length): Don't refer to VLAs not
9668         conforming to C99.
9669
9670 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
9671
9672         * config/rx/rx.c (rx_option_optimization): Change to
9673         rx_override_options_after_change.  Don't change
9674         flag_lto_compression_level.  Don't check for changes to whether
9675         FPU instructions can be used.  Check and set only
9676         flag_finite_math_only, not other fast-math flags.
9677         (rx_option_override): Call rx_override_options_after_change.
9678         (TARGET_OPTION_OPTIMIZATION): Remove.
9679         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
9680
9681 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
9682
9683         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
9684         disable section anchors for lang_hooks.name[4] != 'O'.
9685
9686 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
9687
9688         * config/frv/frv.c (frv_option_optimization,
9689         TARGET_OPTION_OPTIMIZATION): Remove.
9690         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
9691
9692 2010-10-15  Michael Matz  <matz@suse.de>
9693
9694         * cgraphunit.c (clone_of_p): Define unconditionally.
9695
9696 2010-10-15  Richard Guenther  <rguenther@suse.de>
9697
9698         PR lto/45957
9699         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
9700
9701 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
9702
9703         * ifcvt.c (find_active_insn_before): New function.
9704         (find_active_insn_after): New function.
9705         (cond_exec_process_if_block): Use new functions to replace
9706         prev_active_insn() and next_active_insn().
9707
9708 2010-10-14  Yao Qi  <yao@codesourcery.com>
9709
9710         PR target/45447
9711         * config/arm/arm.c (arm_build_builtin_va_list): Assign
9712         va_list_name to TYPE_STUB_DECL (va_list_type).
9713
9714 2010-10-14  Jan Hubicka  <jh@suse.cz>
9715
9716         PR middle-end/45621
9717         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
9718         redirected to clone, be happy.
9719         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
9720         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
9721         former_clone_of unconditionally.
9722
9723 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
9724
9725         Merge from FSF apple 'trunk' branch.
9726         2006 Fariborz Jahanian  <fjahanian@apple.com>
9727
9728         Radars 4436866, 4505126, 4506903, 4517826
9729         * c-parser.c (c_parser, objc_property_attr_context) New flag.
9730         (c_lex_one_token): Handle property attributes.
9731         (c_parser_external_declaration): Handle @property.
9732         (c_parser_declaration_or_fndef): Warn on invalid attributes before
9733         @alias, @class, @end and @property objc keywords.
9734         (c_parser_objc_methodprotolist): Handle @property.
9735         (c_parser_objc_property_attrlist): New.
9736         (c_parser_objc_at_property): New.
9737         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
9738         (build_modify_expr): Likewise.
9739
9740 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
9741
9742         PR tree-optimization/46008
9743         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
9744
9745 2010-10-14  Richard Guenther  <rguenther@suse.de>
9746
9747         PR tree-optimization/44913
9748         * tree-data-ref.c (disjoint_objects_p): Remove.
9749         (dr_may_alias_p): Simplify.  Only hand the base object to
9750         the alias-oracle.
9751         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
9752         some more trees, bail out instead of asserting.
9753         (ptr_derefs_may_alias_p): Likewise.  Export.
9754         (refs_may_alias_p_1): Handle STRING_CSTs.
9755         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
9756
9757 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
9758
9759         PR c/45969
9760         * c-typeck.c (build_binary_op): Don't try to compute a semantic
9761         type with excess precision for boolean operations.
9762
9763 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
9764             Basile Starynkevitch  <basile@starynkevitch.net>
9765
9766         * gengtype.c:  Include getopt.h and version.h.
9767
9768         (lang_bitmap, struct outf, outf_p)
9769         (get_output_file_with_visibility, oprintf): Definitions moved to
9770         gengtype.h
9771         (output_files, header_file, srcdir, srcdir_len, this_file)
9772         (do_dump): No more static variables.
9773         (do_debug): New.
9774         (dbgprint_count_type_at): Added new function.
9775         (gengtype_long_options): New.
9776         (print_usage, print_version, parse_program_options): New.
9777         (main): Call parse_program_options, and removed old option
9778         handling code.  Added some debug output.
9779
9780         * gengtype.h:  Updated copyright year.
9781         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
9782         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
9783         Moved from gengtype.c to here.
9784         (do_debug, read_state_filename, write_state_filename): New variables.
9785         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
9786
9787         * Makefile.in:
9788         (REVISION): Always defined.
9789         (version.o): Removed ifdef REVISION_c.
9790         (s-gtype): Pass arguments to build/gengtype program.
9791         (build/version.o): Added building rule.
9792         (build/gengtype$(build_exeext)): Added build/version.o.
9793
9794 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
9795
9796         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
9797         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
9798         __strong macros.
9799
9800 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
9801
9802         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
9803         may_trap_or_fault_p instead of may_trap_p predicate.
9804         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
9805         (substitute_placeholder_in_expr): Likewise.
9806         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
9807         flag on MEM_REF nodes.
9808         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
9809         flags on INDIRECT_REF nodes.
9810
9811 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
9812
9813         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
9814         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
9815         (arm*-*-eabi*) <tm_file>: Likewise.
9816         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
9817         (frv-*-*linux*) <tm_file>: Likewise.
9818         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
9819         and associated helper macros.
9820         * config/frv/frv-abi.h: Delete.
9821
9822 2010-10-14  Richard Guenther  <rguenther@suse.de>
9823
9824         PR lto/44561
9825         * tree.def (NULLPTR_TYPE): New tree code.
9826         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
9827         * dwarf2out.c (is_base_type): Likewise.
9828         (gen_type_die_with_usage): Likewise.
9829         * sdbout.c (plain_type_1): Likewise.
9830         * tree.c (build_int_cst_wide): Likewise.
9831         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
9832
9833 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
9834
9835         * params.c (params_finished): New.
9836         (add_params): Assert !params_finished.
9837         (finish_params): New.
9838         (set_param_value_internal): Take params and params_set
9839         parameters.  Assert params_finished.
9840         (set_param_value, maybe_set_param_value): Take params and
9841         params_set parameters.  Update calls to set_param_value_internal.
9842         (set_default_param_value): Assert !params_finished.  Don't use
9843         set_param_value_internal.
9844         (default_param_value, init_param_values): New.
9845         * params.h (struct param_info): Change value to default_value.
9846         Remove set.
9847         (set_param_value, maybe_set_param_value): Add params and
9848         params_set parameters.
9849         (PARAM_VALUE): Get parameters from global_options.
9850         (PARAM_SET_P): Remove.
9851         (finish_params, default_param_value, init_param_values): New.
9852         * common.opt (param_values): New Variable.
9853         * config/arm/arm.c (arm_option_override): Pass extra arguments to
9854         maybe_set_param_value.
9855         * config/i386/i386.c (ix86_option_override_internal): Pass extra
9856         arguments to maybe_set_param_value.
9857         * config/picochip/picochip.c (picochip_option_override): Pass
9858         extra arguments to maybe_set_param_value.
9859         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
9860         extra arguments to maybe_set_param_value.
9861         * config/s390/s390.c (s390_option_override): Use
9862         maybe_set_param_value instead of set_param_value.  Pass extra
9863         arguments to maybe_set_param_value.
9864         * config/sparc/sparc.c (sparc_option_override): Pass extra
9865         arguments to maybe_set_param_value.
9866         * config/spu/spu.c (spu_option_override): Pass extra arguments to
9867         maybe_set_param_value.
9868         * opts.c (handle_param): Take opts and opts_set parameters.
9869         Update call to set_param_value.
9870         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
9871         initial_loop_invariant_max_bbs_in_loop): Remove.
9872         (init_options_once): Don't set them.
9873         (init_options_struct): Initialize parameters structures.
9874         (default_options_optimization): Use default_param_value when
9875         restoring defaults.  Update calls to maybe_set_param_value.
9876         (finish_options): Update calls to maybe_set_param_value.
9877         (common_handle_option): Update calls to handle_param and
9878         set_param_value.
9879         * toplev.c (DEFPARAM): Update definition for changes to param_info.
9880         (general_init): Call finish_params.
9881
9882 2010-10-14  Nick Clifton  <nickc@redhat.com>
9883
9884         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
9885         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
9886         (FIRST_PSEUDO_REGISTER): Increase by one.
9887         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
9888         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
9889         (MODES_TIEABLE): Call mn10300_modes_tieable.
9890         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
9891         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
9892         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
9893         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
9894         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
9895         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
9896         (mn10300_cc_status_mdep): Delete.
9897         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
9898         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
9899         the combine-stack-adjust pass.
9900         (print_operand): Use the mode of the comparison operation to
9901         select the comparison suffix.
9902         (notice_update_cc): Delete.
9903         (mn10300_secondary_reload_class): Remove test for stack pointer
9904         based arithmetic.
9905         (output_tst): Rename to mn10300_output_cmp.
9906         (impossible_plus_operand): Move into predicates.md.
9907         (mn10300_legitimize_address): Make static.
9908         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
9909         constant pic operands.
9910         (mn10300_legitimate_constant_p): New function.
9911         (mn10300_case_values_threshold): Make static.
9912         (mn10300_hard_regno_mode_ok): New function.
9913         (mn10300_modes_tieable): New function.
9914         (mn10300_select_cc_mode): New function.
9915         * config/mn10300/predicates.md (impossible_plus_operand): Define.
9916         * config/mn10300/mn10300-protos.h: Tidy.
9917         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
9918         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
9919         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
9920         with clobbers or sets of CC_REG.
9921         (CC_REG): Define.
9922         (mov*): Remove use of CLR instruction.
9923         (cbranch_si4_<code>): New pattern/split.
9924         (integer_conditional_branch): New pattern.
9925         (cbranch_sf4_<code>): New pattern/split.
9926         (float_conditional_branch): New pattern.
9927         (casesi): Use addsi3 pattern instead of movsi pattern to add and
9928         move a value at the same time.
9929         (cc0 peepholes): Remove.
9930
9931 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
9932
9933         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
9934         on RTX_FRAME_RELATED_P insns and the insn to which
9935         NOTE_INSN_EPILOGUE_BEG is attached.
9936         * sched-vis.c (print_value): Allow NULL value.
9937
9938 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
9939
9940         PR rtl-optimization/45570
9941         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
9942         assert that we are pipelining outer loops.  Allow returning
9943         zero predecessors.
9944
9945 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
9946
9947         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
9948         (tidy_control_flow): Tidy vertical space.
9949         (sel_remove_bb): New variable idx.  Use it to remember the basic
9950         block index before deleting the block.
9951         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
9952         (sel_merge_blocks): ... here.
9953         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
9954
9955 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
9956
9957         * cse.c (is_dead_reg): Change into inline function that is not
9958         called through for_each_rtx.
9959         (set_live_p): Adjust caller.
9960         (insn_live_p): Don't reset DEBUG_INSNs here.
9961         (struct dead_debug_insn_data): New data.
9962         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
9963         (delete_trivially_dead_insns): If there is just one setter for the
9964         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
9965         and add DEBUG_INSN for it right before the removed setter and
9966         use the DEBUG_EXPR instead of the dead pseudo.
9967
9968 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
9969
9970         * et-forest.c (et_nca): Return NULL immediately when
9971         the dominance forest has disjoint components.
9972
9973 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
9974
9975         * ira.c (setup_class_hard_regs): Fix typo in indexing
9976         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
9977
9978 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
9979
9980         * graph.c (inbb): New variable.
9981         (start_bb): Set inbb to 1 if output is inside of a building block.
9982         (end_bb): Check if output is inside of a building block.
9983
9984 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
9985
9986         PR rtl-optimization/45912
9987         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
9988         regno of registers instead of their index to compute the alignment.
9989
9990 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
9991
9992         * config/i386/i386.c (ix86_build_const_vector): Check vector
9993         mode instead of scalar mode.
9994         (ix86_build_signbit_mask): Likewise.
9995         (ix86_expand_fp_absneg_operator): Updated.
9996         (ix86_expand_copysign): Likewise.
9997         (ix86_expand_int_vcond): Likewise.
9998         (ix86_emit_swdivsf): Likewise.
9999         (ix86_sse_copysign_to_positive): Likewise.
10000         (ix86_expand_sse_fabs): Likewise.
10001         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
10002         * config/i386/sse.md (copysign<mode>3): Likewise.
10003         (sse2_cvtudq2ps): Likewise.
10004         (vec_unpacku_float_hi_v4si): Likewise.
10005         (vec_unpacku_float_lo_v4si): Likewise.
10006
10007         * config/i386/i386.c (ix86_builtins): Add
10008         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
10009         (bdesc_args): Likewise.
10010         (ix86_builtin_vectorized_function): Support
10011         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
10012         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
10013         and IX86_BUILTIN_CVTPS2DQ256.
10014         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
10015
10016         * config/i386/sse.md (STORENT_MODE): New.
10017         (VEC_FLOAT_MODE): Likewise.
10018         (VEC_EXTRACT_MODE): Likewise.
10019         (*avx_cvtdq2pd256_2): Likewise.
10020         (vec_pack_trunc_v4df): Likewise.
10021         (vec_interleave_highv8sf): Likewise.
10022         (vec_interleave_lowv8sf): Likewise.
10023         (storent<mode>): Macroized.
10024         (<code><mode>2: absneg): Likewise.
10025         (copysign<mode>3): Likewise.
10026         (vec_extract<mode>): Likewise.
10027
10028         PR target/44180
10029         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
10030         for V8SFmode.
10031
10032 2010-10-13  Richard Guenther  <rguenther@suse.de>
10033             H.J. Lu  <hongjiu.lu@intel.com>
10034
10035         * config/i386/sse.md (reduc_splus_v8sf): Add.
10036         (reduc_splus_v4df): Likewise.
10037         (vec_unpacks_hi_v8sf): Likewise.
10038         (vec_unpacks_lo_v8sf): Likewise.
10039         (*avx_cvtps2pd256_2): Likewise.
10040         (vec_unpacks_float_hi_v8si): Likewise.
10041         (vec_unpacks_float_lo_v8si): Likewise.
10042         (vec_interleave_highv4df): Likewise.
10043         (vec_interleave_lowv4df): Likewise.
10044
10045 2010-10-13  Richard Guenther  <rguenther@suse.de>
10046
10047         PR objc/45878
10048         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
10049         alone if there are no virtual methods.
10050
10051 2010-10-13  Richard Henderson  <rth@redhat.com>
10052
10053         * expr.c (build_personality_function): Take parameter LANG instead
10054         of parameter NAME.  Build the name based on the lang prefix and the
10055         unwind method in use.
10056         * tree.c (lhd_gcc_personality): Update call to
10057         build_personality_function.
10058
10059 2010-10-13  Richard Guenther  <rguenther@suse.de>
10060
10061         PR objc/45878
10062         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
10063
10064 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
10065
10066         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
10067         Canonicalize input operands of ASM_OPERANDS insns.
10068
10069 2010-10-13  Richard Guenther  <rguenther@suse.de>
10070
10071         PR tree-optimization/45788
10072         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
10073         EH update until fixup-cfg.
10074
10075 2010-10-13  Julian Brown  <julian@codesourcery.com>
10076
10077         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
10078         from CORE_REGS and GENERAL_REGS classes.
10079         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
10080         final constraint for register preferencing.
10081
10082 2010-10-13  Richard Guenther  <rguenther@suse.de>
10083
10084         PR tree-optimization/45970
10085         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
10086         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
10087         (stmt_kills_ref_p): Likewise.
10088         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
10089
10090 2010-10-13  Richard Guenther  <rguenther@suse.de>
10091
10092         PR tree-optimization/45982
10093         * tree-ssa-structalias.c (make_constraints_to): New function.
10094         (make_constraint_to): Implement in terms of make_constraints_to.
10095         (find_func_aliases): Properly make return values of pure/const
10096         functions escape if they assign to sth that is not a pointer.
10097
10098 2010-10-13  Richard Guenther  <rguenther@suse.de>
10099
10100         PR middle-end/45874
10101         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
10102         Fixup the CFG when EH was fixed up.
10103
10104 2010-10-13  Ira Rosen  <irar@il.ibm.com>
10105
10106         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
10107         Use operand's type for POINTER_PLUS_EXPR.
10108
10109 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
10110
10111         * c-parser.c (c_parser_for_statement): Initialize incr.
10112
10113 2010-10-12  Xinliang David Li  <davidxl@google.com>
10114
10115         PR tree-optimization/45972
10116         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
10117         with too many arguments.
10118
10119 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
10120
10121         PR fortran/45636
10122         * tree-ssa-forwprop.c: Include expr.h.
10123         (constant_pointer_difference, simplify_builtin_call): New functions.
10124         (tree_ssa_forward_propagate_single_use_vars): Call
10125         simplify_builtin_call on builtin calls.
10126
10127 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
10128
10129         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
10130         (*adddi3_extend_sp32): Likewise.
10131         (*subdi3_insn_sp32): Likewise.
10132         (*subdi3_extend_sp32): Likewise.
10133         (*negdi2_sp32): Use negative test for consistency.
10134
10135 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
10136
10137         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
10138         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
10139         * config/fixed-bit.h: Likewise.
10140         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
10141         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
10142         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
10143         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
10144         (DF_SIZE): Likewise.
10145         * doc/tm.texi: Regenerate.
10146
10147 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
10148
10149         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
10150         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
10151         (*isel_reversed_unsigned_<mode>): New.
10152         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
10153         as valid comparisons and adjust operands and output appropriately.
10154         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
10155
10156 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
10157
10158         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
10159         DATA_ALIGNMENT and add COND parameter. Update comments above.
10160         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
10161         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
10162
10163 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
10164
10165         PR bootstrap/45958
10166         * exec-tool.in: Support '-plugin' as the second option to the linker.
10167
10168 2010-10-12  Richard Henderson  <rth@redhat.com>
10169
10170         PR middle-end/45962
10171         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
10172         (expand_stack_vars): Assert large base allocated when used.
10173
10174 2010-10-12  Richard Guenther  <rguenther@suse.de>
10175
10176         * tree-ssa-structalias.c (get_constraint_for_1): Constants
10177         only point to nonlocal, not anything.
10178
10179 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
10180
10181         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
10182         unwind info for exceptions.
10183
10184 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10185
10186         PR testsuite/45851
10187         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
10188         Document optional target selector.
10189
10190 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
10191
10192         * flag-types.h: New.
10193         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
10194         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
10195         options.h.
10196         (OPTIONS_H): Define.
10197         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
10198         of options.h.
10199         * configure.ac (tm_include_list): Include options.h not flags.h.
10200         * configure: Regenerate.
10201         * flags.h: Include flag-types.h.  Include options.h at top of file
10202         again.
10203         (enum debug_info_type, enum debug_info_level, enum
10204         debug_info_usage, enum symbol_visibility, struct visibility_flags,
10205         enum ira_algorithm, enum ira_region, enum excess_precision, enum
10206         graph_dump_types, enum stack_check_type,
10207         enum warn_strict_overflow_code): Move to flag-types.h
10208         * opth-gen.awk: Include flag-types.h in options.h.
10209
10210 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
10211
10212         * expr.c (store_expr): Share code for STRING_CST and
10213         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
10214         check if target is a MEM.
10215
10216         * rtl.h: Include hashtab.h.
10217         (iterative_hash_rtx): New prototype.
10218         * rtl.c (iterative_hash_rtx): New function.
10219         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
10220         (output_loc_list): Return immediately if emitted is set, set it.
10221         (hash_loc_operands, hash_locs, hash_loc_list,
10222         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
10223         optimize_location_lists_1, optimize_location_lists): New function.
10224         (dwarf2out_finish): Call optimize_location_lists.
10225         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
10226
10227 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10228
10229         PR testsuite/45974
10230         Revert:
10231         * Makefile.in ($(lang_checks_parallel))
10232         ($(lang_checks_parallelized)): Use single quotes for
10233         $(RUNTESTFLAGS), to allow passing quoted content.
10234
10235 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10236
10237         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
10238         actual_oldval.  Use __builtin_expect.
10239         (SUBWORD_VAL_CAS): Likewise.
10240
10241 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
10242
10243         * recog.c (nonmemory_operand): Call immediate_operand for
10244         CONSTANT_P operands.
10245
10246 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
10247
10248         * config/i386/i386.md (movmem<mode>): Macroize expander from
10249         movmem{si,di} using SWI48 mode iterator.
10250         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
10251         *strmovsi_rex_1 using P mode iterator.
10252         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
10253         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
10254         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
10255         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
10256         (setmem<mode>): Macroize expander from setmem{si,di} using
10257         SWI48 mode iterator.
10258         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
10259         *strsetsi_rex_1 using P mode iterator.
10260         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
10261         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
10262         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
10263         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
10264         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
10265         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
10266         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
10267         mode iterator.
10268         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
10269         *strlenqi_rex_1 using P mode iterator.
10270
10271 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
10272
10273         PR bootstrap/45445
10274         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
10275         static functions.
10276         (mark_ref_live, mark_ref_dead): Use them.
10277         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
10278         Save the original reg, and use the new functions.
10279         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
10280         changed.
10281         (check_and_make_def_conflict): Save the original reg.
10282
10283 2010-10-11  Martin Jambor  <mjambor@suse.cz>
10284
10285         PR middle-end/45699
10286         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
10287         thunks.
10288
10289 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10290
10291         * Makefile.in ($(lang_checks_parallel))
10292         ($(lang_checks_parallelized)): Use single quotes for
10293         $(RUNTESTFLAGS), to allow passing quoted content.
10294
10295         PR bootstrap/35855
10296         * opt-functions.awk (BEGIN): New section.
10297         (lower, upper, digit, alnum): New variables.
10298         (static_var, opt_sanitized_name): Use alnum instead of character
10299         classes, for non-C locale.
10300         * optc-gen.awk: Likewise.
10301         * opth-gen.awk: Likewise.
10302
10303 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
10304
10305         * target.def (preferred_reload_class): New hook.
10306         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
10307         * doc/tm.texi: Regenerate.
10308         * targhooks.c (default_preferred_reload_class): New function.
10309         * targhooks.h (default_preferred_reload_class): Declare.
10310         * reload.c (find_dummy_reload): Change preferred_class variable type
10311         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
10312         target hook.
10313         (find_reloads): Change goal_alternative array type from int to
10314         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
10315         (push_reload, find_reloads_address_part): Use
10316         TARGET_PREFERRED_RELOAD_CLASS target hook.
10317         * reload1.c (emit_input_reload_insns): Ditto.
10318         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
10319         hook. Change rclass argument and secondary_class variable types from
10320         'enum reg_class' to reg_class_t.
10321
10322         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
10323         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
10324         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
10325         Change regclass argument and result types from enum reg_class to
10326         reg_class_t.
10327         (TARGET_PREFERRED_RELOAD_CLASS): Define.
10328
10329 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
10330
10331         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
10332         in masking operations.
10333         (simplify_const_unary_operation): Likewise.
10334         (simplify_binary_operation_1): Likewise.
10335         (simplify_const_binary_operation): Likewise.
10336         (simplify_const_relational_operation): Likewise.
10337         (simplify_ternary_operation): Likewise.
10338         (simplify_immed_subreg): Likewise.
10339
10340 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10341
10342         PR middle-end/45862
10343         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
10344         (TARGET_SUPPORTS_WEAK): New.
10345         * doc/tm.texi: Regenerate.
10346         * defaults.h (SUPPORTS_WEAK): Update comment.
10347         (TARGET_SUPPORTS_WEAK): New.
10348         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
10349         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
10350         SUPPORTS_WEAK.
10351         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
10352         make_decl_one_only): Likewise.
10353         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
10354         TARGET_SUPPORTS_WEAK.
10355         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
10356         instead of SUPPORTS_WEAK.
10357
10358 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10359
10360         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
10361
10362 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
10363
10364         * vec.h (VEC_qsort): Define.
10365         * dbxout.c (output_used_types): Use it.
10366         * df-scan.c (df_sort_and_compress_refs): Likewise.
10367         (df_sort_and_compress_mws): Likewise.
10368         * genautomata.c (uniq_sort_alt_states): Likewise.
10369         (evaluate_equiv_classes): Likewise.
10370         (output_trans_table): Likewise.
10371         (output_state): Likewise.
10372         * gimplify.c (compare_case_labels): Likewise.
10373         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
10374         * ipa.c (build_cdtor_fns): Likewise.
10375         * lto.c (lto_wpa_write_files): Likewise.
10376         * sel-sched.c (fill_vec_av_set): Likewise.
10377         * tree-predcom.c (determine_roots_comp): Likewise.
10378         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
10379         (splice_param_accesses): Likewise.
10380         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
10381         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
10382         (reassociate_bb): Likewise.
10383         * tree-ssa-sccvn.c (sort_scc): Likewise.
10384         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
10385
10386 2010-10-11  Ian Lance Taylor  <iant@google.com>
10387
10388         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
10389         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
10390         TREE_THIS_NOTRAP when appropriate.
10391         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
10392         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
10393         newly created MEM_REF.
10394
10395 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
10396
10397         Nathan Froyds patch to hooks FUNCTION_ARG etc.
10398         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
10399         (picochip_incoming_function_arg): Delete.
10400         (picochip_arg_advance): Delete.
10401         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
10402         (FUNCTION_INCOMING_ARG): Delete.
10403         (FUNCTION_ARG_ADVANCE): Delete.
10404         * config/picochip/picochip.c (picochip_function_arg): Take a
10405         const_tree and a bool.
10406         (picochip_incoming_function_arg): Likewise.
10407         (picochip_arg_advance): Likewise.
10408         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
10409         (TARGET_FUNCTION_ARG_ADVANCE): Define.
10410
10411 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10412
10413         PR middle-end/45955
10414         * ipa.c (build_cdtor): Delete endless loop.
10415
10416 2010-10-07  Andi Kleen  <ak@linux.intel.com>
10417
10418         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
10419         checksum-options.
10420         (checksum-options): Add.
10421         (cc1-dummy): Remove.
10422         (cc1-checksum): Change to run checksum over object files
10423         and options only.
10424         * dummy-checksum.c: Remove.
10425         * genchecksum.c: Update copyright.
10426         (usage): Allow multiple arguments.
10427         (BLOCKSIZE): Add.
10428         (dosum): Change for incremental checksum. Remove C output.
10429         (main): Iterate over all argument files. Add C output.
10430
10431 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
10432
10433         * params.c (set_param_value_internal): New.
10434         (set_param_value): Use set_param_value_internal.
10435         (maybe_set_param_value, set_default_param_value): New.
10436         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
10437         (maybe_set_param_value, set_default_param_value): Declare.
10438         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
10439         * config/i386/i386.c (ix86_option_override_internal): Use
10440         maybe_set_param_value.
10441         * config/ia64/ia64.c (ia64_option_default_params,
10442         TARGET_OPTION_DEFAULT_PARAMS): New.
10443         (ia64_option_optimization): Move some code to
10444         ia64_option_default_params.
10445         * config/picochip/picochip.c (picochip_option_override): Use
10446         maybe_set_param_value.
10447         * config/rs6000/rs6000.c (rs6000_option_default_params,
10448         TARGET_OPTION_DEFAULT_PARAMS): New.
10449         (rs6000_option_override_internal): Use maybe_set_param_value.
10450         (rs6000_option_optimization): Move some code to
10451         rs6000_option_default_params.
10452         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
10453         * config/sh/sh.c (sh_option_default_params,
10454         TARGET_OPTION_DEFAULT_PARAMS): New.
10455         (sh_option_optimization): Move some code to sh_option_default_params.
10456         * config/sparc/sparc.c (sparc_option_override): Use
10457         maybe_set_param_value.
10458         * config/spu/spu.c (spu_option_default_params,
10459         TARGET_OPTION_DEFAULT_PARAMS): New.
10460         (spu_option_optimization): Move some code to spu_option_default_params.
10461         (spu_option_override): Use maybe_set_param_value.
10462         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
10463         * doc/tm.texi: Regenerate.
10464         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
10465         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
10466         compiler_params.
10467         (default_options_optimization): Use maybe_set_param_value.
10468         (finish_options): Use maybe_set_param_value.
10469         * target.def (target_option.default_params): New hook.
10470         * toplev.c (general_init): Call targetm.target_option.default_params.
10471
10472 2010-10-11  Ira Rosen  <irar@il.ibm.com>
10473
10474         PR tree-optimization/45902
10475         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
10476         vector type for constants, unless it's a pointer.
10477
10478 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10479
10480         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
10481
10482 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
10483
10484         PR target/45870
10485         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
10486         (ix86_delegitimize_address): Use it.
10487
10488 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
10489
10490         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
10491
10492 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
10493
10494         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
10495         to cum struct in the call to function_arg_advance.
10496         (alpha_function_arg_advance): Mark named as unused.
10497
10498 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
10499
10500         * config/mips/mips.c (mips_handle_option): Make "value" with
10501         ATTRIBUTE_UNUSED.
10502
10503 2010-10-09  Richard Henderson  <rth@redhat.com>
10504
10505         PR rtl-opt/33721
10506         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
10507         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
10508         required_align, tidy the code a bit.  Emit split_stack code in the
10509         right place.  Mark the return value with the alignment properly.
10510         * expr.h (allocate_dynamic_stack_space): Update decl.
10511         * builtins.c (expand_builtin_apply): Update call to
10512         allocate_dynamic_stack_space.
10513         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
10514         * calls.c (initialize_argument_information): Update call to
10515         allocate_dynamic_stack_space.
10516         (expand_call): Likewise.
10517
10518         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
10519         Don't update_stack_alignment here.
10520         (alloc_stack_frame_space): Make ALIGN unsigned.
10521         (stack_var_cmp): Sort by alignment too.
10522         (partition_stack_vars): Don't merge large and small alignment vars.
10523         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
10524         Take care when BASE is not virtual_stack_vars_rtx.
10525         (expand_stack_vars): Allocate dynamic stack space for large
10526         alignment variables.
10527         (expand_one_stack_var): Update all to expand_one_stack_var_at.
10528         (defer_stack_allocation): True for large alignment vars.
10529         (update_stack_alignment): Merge into ...
10530         (expand_one_var): ... here.
10531         (gimple_expand_cfg): Place code from expand_stack_vars.
10532
10533 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10534
10535         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10536         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
10537         (pdp11_function_arg_advance): New function.
10538         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10539
10540 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10541
10542         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
10543         * libgcc2.c: Likewise.
10544
10545 2010-10-09  Richard Guenther  <rguenther@suse.de>
10546
10547         PR lto/45956
10548         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
10549         Properly check if a decl is an automatic var.
10550
10551 2010-10-09  Richard Guenther  <rguenther@suse.de>
10552
10553         PR lto/45947
10554         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
10555
10556 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10557
10558         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
10559         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10560         * config/mmix/mmix.c (mmix_function_arg): Rename to...
10561         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
10562         bool arguments.
10563         (mmix_function_arg): New function.
10564         (mmix_function_incoming_arg): New function.
10565         (mmix_function_arg_advance): New function.
10566         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
10567         (TARGET_FUNCTION_ARG_ADVANCE): Define.
10568
10569 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10570
10571         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10572         * config/vax/vax.c (vax_function_arg): New function.
10573         (vax_function_arg_advance): New function.
10574         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10575
10576 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10577
10578         * config/pa/pa-protos.h (function_arg): Delete.
10579         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10580         * config/pa/pa.c (function_arg): Rename to...
10581         (pa_function_arg): ...this.  Make static.  Take a const_tree and
10582         a bool.
10583         (pa_function_arg_advance): New function.
10584         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10585
10586 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10587
10588         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10589         * config/m68k/m68k.c (m68k_function_arg): New function.
10590         (m68k_function_arg_advance): New function.
10591         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10592
10593 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10594
10595         * config/avr/avr-protos.h (function_arg): Delete.
10596         (function_arg_advance): Delete.
10597         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10598         * config/avr/avr.c (function_arg): Rename to...
10599         (avr_function_arg): ...this.  Make static.  Take a const_tree and
10600         a bool.
10601         (function_arg_advance): Rename to...
10602         (avr_function_arg_advance): ...this.  Make static.  Take a
10603         const_tree and a bool.
10604         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10605
10606 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10607
10608         * config/alpha/alpha-protos.h (function_arg): Delete.
10609         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10610         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
10611         * config/alpha/alpha.c (function_arg): Rename to...
10612         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
10613         a bool.  Delete TARGET_ABI_UNICOSMK code.
10614         (alpha_function_arg_advance): New function.
10615         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10616
10617 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10618
10619         * config/mep/mep-protos.h (mep_function_arg): Delete.
10620         (mep_function_arg_advance): Delete.
10621         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10622         * config/mep/mep.c (mep_function_arg): Make static.  Take a
10623         const_tree and a bool.
10624         (mep_function_arg_advance): Likewise.
10625         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10626
10627 2010-10-09  Richard Guenther  <rguenther@suse.de>
10628
10629         PR tree-optimization/45945
10630         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
10631
10632 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
10633
10634         PR tree-optimization/45612
10635         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
10636         Test LABEL_DECLs as well.  Fix formatting issues.
10637         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
10638         whose label is present in NON_SSA_VARS.
10639         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
10640         as well.  Fix formatting issues.
10641         (visit_bb): Fix typos and formatting issue.
10642
10643 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10644
10645         PR tree-optimization/45950
10646         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
10647         before initializing vno->op.
10648
10649 2010-10-09  Ralf Corsépius  <ralf.corsepius@rtems.org>
10650
10651         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
10652         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
10653
10654 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
10655
10656         PR target/45913
10657         * config/i386/i386.c (ix86_binary_operator_ok): Support
10658         "andhi/andsi/anddi" as a zero-extending move.
10659
10660 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10661
10662         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
10663         into a temporary array.
10664
10665 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
10666
10667         PR tree-optimization/45903
10668         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
10669         of {A,L}SHIFTRT of MEM.
10670
10671 2010-10-08  Richard Guenther  <rguenther@suse.de>
10672
10673         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
10674         Re-construct BLOCK_VARS.
10675         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
10676         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
10677         * tree.c (free_lang_data_in_block): Remove.
10678         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
10679         Do not touch the BLOCK tree.
10680         * expr.c (expand_expr_real_1): Allow externals.
10681
10682 2010-10-08  Richard Guenther  <rguenther@suse.de>
10683
10684         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
10685         Do not output BLOCK_SUBBLOCKS.
10686         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
10687         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
10688         Re-construct BLOCK_SUBBLOCKS of parent block.
10689         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
10690         for BINFO_BASE_ACCESSES.
10691
10692 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
10693
10694         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
10695         (TREE_H): Include $(FLAGS_H) instead of options.h.
10696         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
10697         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
10698         * common.opt (flag_complex_method, flag_evaluation_order,
10699         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
10700         Variable declarations.
10701         * configure.ac (tm_include_list): Include flags.h instead of options.h.
10702         * configure: Regenerate.
10703         * flags.h: Condition out contents for target libraries.  Include
10704         options.h at end of file.
10705         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
10706         flag_evaluation_order, flag_warn_unused_result): Remove.
10707         * gcc.c (main): Intialize global_options with global_options_init.
10708         * langhooks-def.h (lhd_init_options_struct): Declare.
10709         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
10710         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
10711         * langhooks.c (lhd_init_options_struct): New.
10712         * langhooks.h (struct lang_hooks): Add init_options_struct.
10713         Update comment on init_options.
10714         * optc-gen.awk: Generate initializer for global_options_init, not
10715         global_options.
10716         * opth-gen.awk: Condition out structure declarations for target
10717         libraries.  Declare global_options_init.
10718         * opts-common.c: Include flags.h instead of options.h.
10719         * opts.c (flag_warn_unused_result): Remove.
10720         (read_cmdline_options): Take gcc_options parameters.  Pass them to
10721         read_cmdline_option.
10722         (initial_lang_mask, initial_min_crossjump_insns,
10723         initial_max_fields_for_field_sensitive,
10724         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
10725         (init_options_once): New.  Split out of decode_options.
10726         (init_options_struct): New.  Split out of decode_options.
10727         (decode_cmdline_options_to_array_default_mask): New.
10728         (default_options_optimization): New.  Split out of decode_options.
10729         (decode_options): Move most code to other functions.  Update call
10730         to read_cmdline_options.
10731         (finish_options): New.  Split out of decode_options.
10732         * opts.h (decode_options): Add gcc_options parameters.
10733         (init_options_once, init_options_struct,
10734         decode_cmdline_options_to_array_default_mask): New.
10735         * toplev.c (flag_complex_method, flag_ira_algorithm,
10736         flag_ira_region, flag_evaluation_order): Remove.
10737         (general_init): Use global_options_init for initial flag values
10738         for global_dc.
10739         (toplev_main): Call init_options_once, init_options_struct,
10740         lang_hooks.init_options_struct,
10741         decode_cmdline_options_to_array_default_mask and
10742         lang_hooks.init_option before decode_options.  Update arguments to
10743         decode_options.
10744         * tree.h: Include flags.h instead of options.h.
10745
10746 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10747
10748         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
10749
10750 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10751
10752         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
10753         Delete.
10754         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
10755         (FUNCTION_INCOMING_ARG): Delete.
10756         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
10757         (function_arg_slotno): Likewise.  Take bool arguments.
10758         (sparc_arg_partial_bytes): Update call to it.
10759         (function_arg): Rename to...
10760         (sparc_function_arg_1): ...this.  Take bool arguments.
10761         (sparc_function_arg, sparc_function_incoming_arg): New functions.
10762         (function_arg_advance): Rename to...
10763         (sparc_function_arg_advance): ...this.  Take bool argument.
10764         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
10765         (TARGET_FUNCTION_INCOMING_ARG): Define.
10766
10767 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10768
10769         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
10770         Delete.
10771         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10772         * config/bfin/bfin.c (function_arg_advance): Rename to...
10773         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
10774         and bool arguments.
10775         (function_arg): Rename to...
10776         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
10777         arguments.
10778         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10779
10780 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10781
10782         * config/score/score-protos.h (score_function_arg): Delete.
10783         (score_function_arg_advance): Delete.
10784         * config/score/score3.h (score3_function_arg_advance): Take a
10785         const_tree and a bool.
10786         (score3_function_arg): Likewise.
10787         * config/score/score7.h (score7_function_arg_advance): Likewise.
10788         (score7_function_arg): Likewise.
10789         * config/score/score3.c (score3_classify_arg): Likewise.
10790         (score3_function_arg_advance, score3_function_arg): Likewise.
10791         * config/score/score7.c (score7_classify_arg): Likewise.
10792         (score7_function_arg_advance, score7_function_arg): Likewise.
10793         * config/score/score.c (score_function_arg_advance): Likewise.
10794         (score_function_arg): Likewise.  De-const-ify `cum' argument.
10795         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10796
10797 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10798
10799         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
10800         (s390_function_arg): Delete.
10801         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10802         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
10803         (s390_function_arg_integer): Likewise.
10804         (s390_function_arg_advance): Make static.  Take a const_tree and
10805         a bool.
10806         (s390_function_arg): Likewise.
10807         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10808
10809 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10810
10811         * config/spu/spu-protos.h (spu_function_arg): Delete.
10812         * config/spu/spu.h (FUNCTION_ARG): Delete.
10813         (FUNCTION_ARG_ADVANCE): Move code to ...
10814         * config/spu/spu.c (spu_function_arg_advance): New function.
10815         (spu_function_arg): Make static.  Take a const_tree and a bool.
10816         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
10817         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10818
10819 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10820
10821         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
10822
10823 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10824
10825         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
10826         (init_vn_nary_op_from_op): New function.
10827         (init_vn_nary_op_from_stmt): New function.
10828         (vn_nary_op_lookup_1): New function.
10829         (sizeof_vn_nary_op): New function.
10830         (alloc_vn_nary_op_noinit): New function.
10831         (alloc_vn_nary_op): New function.
10832         (vn_nary_op_insert_into): New function.
10833         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
10834         (vn_nary_op_lookup): Likewise.
10835         (vn_nary_op_lookup_stmt): Likewise.
10836         (vn_nary_op_insert_pieces): Likewise.
10837         (vn_nary_op_insert): Likewise.
10838         (vn_nary_op_insert_stmt): Likewise.
10839         (copy_nary): Likewise.
10840         (set_value_id_for_result): New function.
10841         (set_hashtable_value_ids): Call it.
10842
10843 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10844
10845         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
10846         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
10847
10848 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10849
10850         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
10851         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
10852
10853 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
10854
10855         PR debug/45656
10856         * cse.c (cse_extended_basic_block): Preserve cc0 info across
10857         debug isnsn.  Skip them when searching for cc0 setter.
10858         (set_live_p): Skip debug insns when searching for cc0 user.
10859
10860 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
10861
10862         PR debug/45673
10863         PR debug/45604
10864         PR debug/45419
10865         PR debug/45408
10866         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
10867         type of MEM_REFs to INTEGER_CSTs.
10868
10869 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
10870
10871         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
10872         m68hc11_print_operand_address.
10873
10874 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
10875
10876         * builtins.c (rewrite_call_expr): Move code to...
10877         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
10878         (rewrite_call_expr_array): New function.
10879         (fold_builtin_sprintf_chk_1): New function.
10880         (fold_builtin_sprintf_chk): Call it.
10881         (gimple_fold_builtin_sprintf_chk): Likewise.
10882         (fold_builtin_snprintf_chk_1): New function.
10883         (fold_builtin_snprintf_chk): Call it.
10884         (gimple_fold_builtin_snprintf_chk): Likewise.
10885         (gimple_rewrite_call_expr): Delete.
10886
10887 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
10888
10889         * config.host: Update copyright year.
10890
10891 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
10892
10893         * config.host (host_lto_plugin_soname): New shell variable.
10894         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
10895         * config.in: Regenerate.
10896         * configure: Regenerate.
10897         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
10898         LTO plugin shared library.
10899
10900 2010-10-07  Richard Henderson  <rth@redhat.com>
10901
10902         * target.h (enum unwind_info_type): Move ...
10903         * coretypes.h: ... here.
10904
10905 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
10906
10907         * doc/objc.texi (Fast enumeration protocol): Mention that
10908         'unsigned int' can also be used instead of 'unsigned long' in
10909         countByEnumeratingWithState:objects:count:.
10910
10911 2010-10-07  Martin Jambor  <mjambor@suse.cz>
10912
10913         * tree-sra.c (struct access): New field grp_assignment_write.
10914         (dump_access): Dump grp_assignment_write.
10915         (build_accesses_from_assign): Set grp_assignment_write.
10916         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
10917         (mark_read_status): Renamed to mark_rw_status, individual values
10918         renamed too.
10919         (analyze_access_subtree): Changed type of mark_write to
10920         mark_read_status.  Fixed propagating of mark_read and
10921         mark_write.  Changed benefit estimate.  Updated comment.
10922
10923 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
10924
10925         PR Tree-Vect/45847
10926         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
10927         check for vectype_out returned by get_vectype_for_scalar_type().
10928
10929 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
10930
10931         PR target/45805
10932         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
10933         constraint, add register specifier in instruction template.
10934         (neon_vec_pack_trunc_<mode>): Likewise.
10935         (neon_vec_<US>mult_<mode>): Add register specifier to
10936         instruction template.
10937
10938 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
10939
10940         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
10941         cygwin2.o.
10942         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
10943         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
10944         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
10945         (cygwin2.o): Likewise.
10946         * config/i386/cygwin1.c: Delete file.
10947         * config/i386/cygwin2.c: Likewise.
10948         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
10949         make all {%!mno-cygwin} ones unconditional.
10950         (STARTFILE_SPEC): Likewise.
10951         (REAL_LIBGCC_SPEC): Likewise.
10952         (LIB_SPEC): Likewise.
10953         (CXX_WRAP_SPEC): Likewise.
10954         (LINK_SPEC): Likewise.
10955         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
10956         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
10957         (cygwin_gplusplus_include_dir): Delete now-unused array.
10958         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
10959         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
10960         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
10961         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
10962         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
10963         (cygwin_local_include_dir): Delete now-unused array.
10964         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
10965         (cygwin_cross_include_dir): Delete now-unused array.
10966         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
10967         (cygwin_tool_include_dir): Delete now-unused array.
10968         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
10969         (cygwin_standard_include_dir): Delete now-unused array.
10970         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
10971         (GEN_CVT_ARRAY): Delete now-unused macro definition.
10972         (cvt_to_mingw): Delete now-unused array.
10973         (mingw_scan): Remove prototype of deleted function.
10974         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
10975         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
10976         * doc/invoke.texi (-mcygwin): Don't document removed option.
10977         (-mno-cygwin): Likewise.
10978
10979 2010-10-07  Richard Guenther  <rguenther@suse.de>
10980
10981         * machmode.h (mode_for_vector): Declare.
10982         * stor-layout.c (mode_for_vector): New function, split out from ...
10983         (layout_type): ... here.
10984         * tree-vectorizer.h (current_vector_size): Declare.
10985         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
10986         mask vector type is available.
10987         (get_vectype_for_scalar_type): Rename to ...
10988         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
10989         size argument.
10990         (get_vectype_for_scalar_type): New wrapper around
10991         get_vectype_for_scalar_type_and_size using current_vector_size.
10992         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
10993         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
10994         of vect_analyze_loop here.
10995         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
10996         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
10997         to autodetect.
10998         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
10999         V8SF to V8SI conversion builtin.
11000
11001 2010-10-07  Richard Guenther  <rguenther@suse.de>
11002
11003         * target.def (autovectorize_vector_sizes): New target hook.
11004         * targhooks.c (default_autovectorize_vector_sizes): New function.
11005         * targhooks.h (default_autovectorize_vector_sizes): Declare.
11006         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
11007         Document.
11008         * doc/tm.texi: Update.
11009         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
11010         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
11011
11012 2010-10-07  Richard Guenther  <rguenther@suse.de>
11013
11014         * target.def (units_per_simd_word): Rename to ...
11015         (preferred_simd_mode): ... this.  Return mode instead of size.
11016         * targhooks.c (default_units_per_simd_word): Rename to ...
11017         (default_preferred_simd_mode): ... this.  Return word_mode.
11018         * targhooks.h (default_preferred_simd_mode): Declare.
11019         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
11020         (arm_preferred_simd_mode): ... this.  Re-implement.
11021         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
11022         (ix86_preferred_simd_mode): ... this.  Re-implement.
11023         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
11024         (sparc_preferred_simd_mode): ... this.  Re-implement.
11025         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
11026         (mips_preferred_simd_mode): ... this.  Re-implement.
11027         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
11028         (rs6000_preferred_simd_mode): ... this.  Re-implement.
11029         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
11030         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
11031         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
11032         * doc/tm.texi: Update.
11033
11034 2010-10-07  Richard Guenther  <rguenther@suse.de>
11035
11036         PR middle-end/45869
11037         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
11038         of pointers.
11039
11040 2010-10-07  Alan Modra  <amodra@gmail.com>
11041
11042         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
11043         rather than sign extension by hand.
11044
11045 2010-10-07  Jan Hubicka  <jh@suse.cz>
11046
11047         PR middle-end/45926
11048         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
11049
11050 2010-10-07  Richard Guenther  <rguenther@suse.de>
11051
11052         PR bootstrap/45914
11053         * configure.ac: Fix typo.
11054         * configure: Regenerated.
11055
11056 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
11057
11058         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
11059         define_builtin_std where it's unnecessary.
11060         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
11061
11062 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
11063
11064         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
11065         * doc/tm.texi.in: Regenerate.
11066         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
11067         * targhooks.c (default_class_likely_spilled_p): Don't use the
11068         CLASS_LIKELY_SPILLED_P macro.
11069
11070         * config/arm/arm.md: Update comment.
11071
11072 2010-10-06  Jan Hubicka  <jh@suse.cz>
11073
11074         * ipa.c (cgraph_remove_unreachable_nodes): External references can
11075         always be removed.
11076         (cgraph_externally_visible_p): We can not bring local comdats that
11077         are known to linker; fix handling of internal visibility.
11078         (function_and_variable_visibility): Likewise.
11079
11080 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
11081
11082         PR rtl-optimization/45394
11083         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
11084         (struct rtx_subst_pair): Remove AFTER field.
11085         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
11086         (propagate_for_debug): Remove MOVE parameter and adjust.
11087         (try_combine): In the special case where I2 is a PARALLEL, combine only
11088         destinations of SETs and set I2SRC to the I2 source.
11089         Adjust calls to propagate_for_debug throughout.
11090         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
11091         insns.
11092
11093 2010-10-06  Olivier Hainque  <hainque@adacore.com>
11094
11095         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
11096         switch on insn codes as sequence of ifs.
11097
11098 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
11099
11100         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
11101         be UI_NONE for picochip.
11102         (picochip_option_override): Do not disable exception flags.
11103         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
11104         Declare.
11105
11106 2010-10-06  Richard Guenther  <rguenther@suse.de>
11107
11108         * Makefile.in (regmove.o): Depend on $(TARGET_H).
11109
11110 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
11111
11112         Implemented fast enumeration for Objective-C.
11113         * c-parser.c (objc_could_be_foreach_context): New.
11114         (c_lex_one_token): Recognize RID_IN keyword in a potential
11115         Objective-C foreach context.
11116         (c_parser_declaration_or_fndef): Added parameter.  Accept
11117         Objective-C RID_IN keyword as terminating a declaration; in that
11118         case, return the declaration in the new parameter.
11119         (c_parser_extenral_declaration): Updated calls to
11120         c_parser_declaration_or_fndef.
11121         (c_parser_declaration_or_fndef): Same change.
11122         (c_parser_compound_statement_nostart): Same change.
11123         (c_parser_label): Same change.
11124         (c_parser_objc_methodprotolist): Same change.
11125         (c_parser_omp_for_loop): Same change.
11126         (c_parser_for_statement): Detect and parse Objective-C foreach
11127         statements.
11128         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
11129         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
11130         fast enumeration parsing code to turn off the c99 error but still
11131         perform checks on the loop declarations.
11132         * c-tree.h (check_for_loop_decls): Updated declaration.
11133         * doc/objc.texi: Document fast enumeration.
11134
11135 2010-10-06  Nick Clifton  <nickc@redhat.com>
11136
11137         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
11138         (MDR_REGNUM): Define.
11139         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
11140         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
11141         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
11142         (REGISTER_NAMES): Add MDR.
11143         (DWARF2_DEBUGGING_INFO): Define to 1.
11144         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
11145         (F): New function.  Sets RTX_FRAME_RELATED_P.
11146         (mn10300_gen_multiple_store): Use F.
11147         (expand_prologue): Use F.  Use gen_movsf() to push floating
11148         point registers.
11149         (expand_epilogue): Use gen_movsf() to pop floating point registers.
11150         (mn10300_option_override): Disable combine stack adjust pass.
11151
11152 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
11153
11154         PR target/45901
11155         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
11156         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
11157
11158 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
11159
11160         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
11161         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
11162         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
11163         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
11164         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
11165         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
11166         BUILT_IN_TOUPPER): Mark as leaf.
11167
11168         PR middle-end/45838
11169         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
11170         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
11171         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
11172         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
11173         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
11174         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
11175         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
11176
11177 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
11178
11179         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
11180         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11181         (m68hc11_class_likely_spilled_p): New function.
11182
11183 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
11184
11185         * c-parser.c (c_parser_objc_method_definition): Updated comment.
11186
11187 2010-10-05  Jan Hubicka  <jh@suse.cz>
11188
11189         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
11190         Document.
11191         * opts.c (decode_options): Handle lto partitions.
11192         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
11193         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
11194
11195 2010-10-05  Jan Hubicka  <jh@suse.cz>
11196
11197         * cgraphunit.c (assemble_function): Output thunks and aliases before
11198         the function itself.
11199
11200 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
11201
11202         * config/picochip/picochip.c (picochip_option_override): Disable
11203         exception flags for picochip.
11204
11205 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
11206
11207         * opts-common.c (handle_option, handle_generated_option,
11208         read_cmdline_option, set_option): Add diagnostic_context
11209         parameter.  Update calls among these functions.
11210         (set_option): Don't use global_dc.
11211         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
11212         (decode_options): Pass global_dc to enable_warning_as_error.
11213         (common_handle_option): Pass global_dc to enable_warning_as_error.
11214         (enable_warning_as_error): Add diagnostic_context parameter.
11215         Document parameters.  Don't use global_dc.  Pass
11216         diagnostic_context parameter to handle_generated_option.
11217         * opts.h (set_option, handle_option, handle_generated_option,
11218         read_cmdline_option, enable_warning_as_error): Add
11219         diagnostic_context parameter.
11220         * Makefile.in (lto-opts.o): Update dependencies.
11221         * coretypes.h (struct diagnostic_context, diagnostic_context):
11222         Declare here.
11223         * diagnostic.h (diagnostic_context): Don't declare typedef here.
11224         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
11225         * langhooks-def.h (struct diagnostic_context): Don't declare here.
11226         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
11227         using diagnostic_context typedef.
11228         * langhooks.c (lhd_initialize_diagnostics): Declare using
11229         diagnostic_context typedef.
11230         * langhooks.h (struct diagnostic_context): Don't declare here.
11231         (initialize_diagnostics, print_error_function): Declare using
11232         diagnostic_context typedef.
11233         * lto-opts.c: Include diagnostic.h.
11234         (lto_reissue_options): Pass global_dc to set_option.  Pass
11235         DK_UNSPECIFIED not 0.
11236         * plugin.c (plugins_internal_error_function): Declare using
11237         diagnostic_context typedef.
11238         * plugin.h (struct diagnostic_context): Don't declare here.
11239         (plugins_internal_error_function): Declare using
11240         diagnostic_context typedef.
11241
11242 2010-10-05  Olivier Hainque  <hainque@adacore.com>
11243             Nicolas Roche  <roche@adacore.com>
11244
11245         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
11246         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
11247
11248 2010-10-05  Ira Rosen  <irar@il.ibm.com>
11249
11250         PR tree-optimization/45752
11251         * tree-vect-slp.c (vect_get_mask_element): Remove static
11252         variables, make them function arguments.
11253         (vect_transform_slp_perm_load): Pass new arguments to
11254         vect_get_mask_element.
11255
11256 2010-10-05  Richard Guenther  <rguenther@suse.de>
11257
11258         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
11259         (gimple_mod_pow2): Likewise.
11260         (gimple_mod_subtract): Likewise.
11261         (gimple_ic): Likewise.
11262         (gimple_stringop_fixed_value): Likewise.
11263         * tree-profile.c (tree_init_edge_profiler): Mark profile
11264         functions nothrow and leaf.
11265         (add_abnormal_goto_call_edges): Remove.
11266         (tree_gen_edge_profiler): Work on SSA form.
11267         (tree_gen_ic_profiler): Likewise.  Simplify.
11268         (do_tree_profiling): Update SSA form.
11269         (pass_tree_profile): Remove.
11270         (do_tree_profiling): Likewise.
11271         (gate_tree_profile_ipa): New function.
11272         (pass_ipa_tree_profile): New.
11273         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
11274         state of instrumented functions.
11275         * passes.c (init_optimization_passes): Remove early non-SSA
11276         inlining.  Move profiling after early optimizations.
11277         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
11278         (pass_ipa_early_inline): Likewise.
11279         * tree-pass.h (pass_ipa_early_inline): Remove.
11280         (pass_tree_profile): Likewise.
11281         (pass_ipa_tree_profile): Declare.
11282
11283 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11284             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
11285
11286         * config/s390/s390.c (z196_cost): New.
11287         (s390_handle_arch_option): Add -march=z196.
11288         (s390_option_override): Use the new cost function and use the z10
11289         defaults also for z196.
11290         (legitimate_reload_constant_p): Adjust comment.
11291         (legitimate_reload_fp_constant_p): New function.
11292         (s390_preferred_reload_class): Distingiush between FP and Int constants.
11293         (preferred_la_operand_p): Avoid la with index on z196.
11294         (s390_adjust_priority): Trigger also for z196.
11295         (s390_issue_rate): Issue rate for z196 is 3.
11296         (s390_z10_fix_long_loop_prediction): Rename to ...
11297         (s390_fix_long_loop_prediction): ... this.
11298         (s390_reorg): Apply the z10 adjustments also for z196.
11299         (s390_loop_unroll_adjust): Do this also for z196.
11300         * config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
11301         (enum processor_flags): Add PF_Z196.
11302         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
11303         (TARGET_CPU_Z196, TARGET_Z196): New macros.
11304         * config.gcc: Enable z196 for --with-arch.
11305         * config/s390/2817.md: New file.
11306         * config/s390/2084.md: New type for multiply and add.
11307         * config/s390/2097.md: Likewise.
11308         * config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
11309         (UNSPECV_ATOMIC_OP): New constants.
11310         (fmadddf, fmaddsf): New values for type attribute.
11311         (z196prop): New insn attribute.
11312         (cpu, cpu_facility): Add z196.
11313         (ATOMIC_Z196): New code iterator.
11314         (noxa): New code attribute.
11315         (gk): New mode attribute.
11316         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
11317         Support load zero for fp constants.
11318         (fixuns_truncdddi2, fixuns_trunctddi2)
11319         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
11320         for z196.
11321         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
11322         (popcounthi2, popcountqi2): New expander.
11323         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
11324         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
11325         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
11326         insn definition.
11327         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
11328         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
11329         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
11330         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
11331         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
11332         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
11333         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
11334         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
11335         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
11336         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
11337         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
11338         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
11339         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
11340         Support new z196 instructions.
11341
11342 2010-10-05  Richard Guenther  <rguenther@suse.de>
11343
11344         PR middle-end/45877
11345         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
11346         case where gimplification optimizes away the stmt.
11347
11348 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
11349
11350         PR debug/45849
11351         * var-tracking.c (strip_pointer_flags): New function.
11352         (emit_note_insn_var_location): If rtx_equal_p check failed,
11353         retry on locations simplified with simplify_replace_fn_rtx
11354         and strip_pointer_flags as its callback.
11355
11356 2010-10-04  Jan Hubicka  <jh@suse.cz>
11357
11358         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
11359         (can_refer_decl_in_current_unit_p): ... this one; reverse return
11360         value; handle comdats too.
11361         (canonicalize_constructor_val): Use it; handle function_decls
11362         correctly.
11363         (gimple_fold_obj_type_ref_known_binfo): Likewise.
11364         * gimple.c (get_base_address): Accept all kinds of decls.
11365
11366 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
11367
11368         * flags.h (g_switch_value, g_switch_set): Remove.
11369         * opts.c (g_switch_value, g_switch_set): Remove.
11370         * config/g.opt (G): Add Var(g_switch_value).
11371         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
11372         (alpha_option_override): Check global_options_set.x_g_switch_value
11373         instead of g_switch_set.
11374         (alpha_in_small_data_p): Remove cast in comparison with
11375         g_switch_value.
11376         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
11377         g_switch_value to unsigned HOST_WIDE_INT.
11378         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
11379         with g_switch_value.
11380         (frv_handle_option): Don't handle -G here.
11381         (frv_option_override): Check global_options_set.x_g_switch_value
11382         instead of g_switch_set.  Don't modify g_switch_set.
11383         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
11384         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
11385         g_switch_value to unsigned HOST_WIDE_INT.
11386         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
11387         (ia64_option_override): Check global_options_set.x_g_switch_value
11388         instead of g_switch_set.
11389         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
11390         Remove.
11391         (lm32_in_small_data_p): Remove cast in comparison with
11392         g_switch_value.
11393         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
11394         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
11395         HOST_WIDE_INT.
11396         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
11397         (m32r_init): Check global_options_set.x_g_switch_value instead of
11398         g_switch_set.
11399         (m32r_in_small_data_p): Remove cast in comparison with
11400         g_switch_value.
11401         (m32r_file_start): Format g_switch_value with %d.
11402         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
11403         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
11404         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
11405         handle -G here.
11406         (microblaze_option_override): Check
11407         global_options_set.x_g_switch_value instead of g_switch_set.
11408         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
11409         (mips_option_override): Check global_options_set.x_g_switch_value
11410         instead of g_switch_set.
11411         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
11412         (rs6000_file_start): Format g_switch_value with %d.
11413         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
11414         comparisons with g_switch_value.
11415         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
11416         global_options_set.x_g_switch_value instead of g_switch_set.
11417         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
11418         global_options_set.x_g_switch_value instead of g_switch_set.
11419         * config/score/score.c (score_handle_option): Don't handle -G here.
11420         * config/score/score3.c (score3_option_override): Check
11421         global_options_set.x_g_switch_value instead of g_switch_set.
11422         * config/score/score7.c (score7_option_override): Check
11423         global_options_set.x_g_switch_value instead of g_switch_set.
11424
11425 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
11426
11427         * common.opt (fira-coalesce): Remove.
11428
11429         * doc/invoke.texi (flag_ira_coalesce): Remove.
11430
11431         * ira-color.c (allocno_coalesced_p): Move before
11432         copy_freq_compare_func.
11433         processed_coalesced_allocno_bitmap): Ditto.
11434         (update_conflict_hard_regno_costs): Don't use
11435         ALLOCNO_FIRST_COALESCED_ALLOCNO.
11436         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
11437         (assign_hard_reg): Assume no coalesced allocnos.
11438         (get_coalesced_allocnos_attributes): Remove.
11439         (bucket_allocno_compare_func): Assume no coalesced allocnos.
11440         (push_allocno_to_stack): Ditto.
11441         (remove_allocno_from_bucket_and_push): Use
11442         ira_print_expanded_allocno instead of print_coalesced_allocno.
11443         (push_allocnos_to_stack): Assume uncoalesced allocnos.
11444         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
11445         all_conflicting_hard_regs.
11446         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
11447         (setup_allocno_left_conflicts_size): Ditto.
11448         (put_allocno_into_bucket): Ditto.
11449         (copy_freq_compare_func): Remove.
11450         (copy_freq_compare_func, merge_allocnos): Move before
11451         coalesced_pseudo_reg_freq_compare.
11452         coalesced_allocno_conflict_p): Ditto.
11453         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
11454         parameter.  Assume it true.
11455         (color_allocnos): Assume uncoalesced allocnos.  Use
11456         ira_print_expanded_allocno instead of print_coalesced_allocno.
11457         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
11458         parameter.
11459
11460         * ira.c: Remove comment about coalescing.
11461
11462 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
11463
11464         * config/mips/mips.h (target_flags_explicit): Declare for
11465         GENERATOR_FILE.
11466
11467 2010-10-04  Andi Kleen  <ak@linux.intel.com>
11468
11469         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
11470         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
11471
11472 2010-10-04  Matthias Klose  <doko@ubuntu.com>
11473
11474         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
11475         multilib osdirname if it exists.
11476         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
11477
11478 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
11479
11480         PR middle-end/45876
11481         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
11482         arg0's type or its unsigned counterpart as utype.  Convert
11483         arg1 to utype unconditionally.
11484
11485 2010-10-04  Julian Brown  <julian@codesourcery.com>
11486
11487         * expr.c (expand_assignment): Add assertion to prevent emitting
11488         null rtx for movmisalign pattern.
11489         (expand_expr_real_1): Likewise.
11490         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
11491         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
11492         (arm_vector_alignment_reachable): New.
11493         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
11494         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
11495         (arm_print_operand): Include alignment qualifier in %A.
11496         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
11497         (movmisalign<mode>): New expander.
11498         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
11499         insn patterns.
11500
11501 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
11502
11503         * optc-gen.awk: Define global_options_set.  Don't define
11504         target_flags_explicit.
11505         * opth-gen.awk: Declare global_options_set.  Define
11506         target_flags_explicit as macro.
11507         * opts-common.c (handle_option): Take opts_set and generated_p
11508         parameters.
11509         (handle_generated_option, read_cmdline_option, set_option): Take
11510         opts_set parameter.
11511         (set_option): Use opts_set instead of hardcoding target_flags and
11512         target_flags_explicit.
11513         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
11514         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
11515         flag_value_profile_transformations_set, flag_peel_loops_set,
11516         flag_branch_probabilities_set, flag_inline_functions_set,
11517         flag_ipa_cp_set, flag_ipa_cp_clone_set,
11518         flag_predictive_commoning_set, flag_unswitch_loops_set,
11519         flag_gcse_after_reload_set): Remove.
11520         (common_handle_option, lang_handle_option, target_handle_option):
11521         Take opts_set parameter.  Assert that it is &global_options_set.
11522         (common_handle_option): Don't set _set variables.  Check opts_set
11523         instead of such variables.
11524         (enable_warning_as_error): Pass &global_options_set to
11525         handle_generated_option.
11526         * opts.h (cl_option_handler_func.handler, set_option,
11527         handle_option, handle_generated_option, read_cmdline_option): Add
11528         opts_set parameters.
11529         (handle_option): Add generated_p parameter.
11530         * config/i386/i386.c (ix86_function_specific_save,
11531         ix86_function_specific_restore): Updat for renaming of
11532         target_flags_explicit field.
11533         * config/i386/i386.opt (target_flags_explicit): Rename to
11534         ix86_target_flags_explicit.
11535         * config/ia64/ia64.c (ia64_override_options_after_change): Check
11536         global_options_set.x_flag_selective_scheduling and
11537         global_options_set.x_flag_selective_scheduling2, not
11538         sel_sched_switch_set.
11539         * flags.h (sel_sched_switch_set,
11540         flag_speculative_prefetching_set): Remove.
11541         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
11542         that it is &global_options_set.
11543         (process_command): Pass &global_options_set to read_cmdline_option.
11544         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
11545         set_option.
11546         * toplev.c (target_flags_explicit): Remove.
11547
11548 2010-10-04  Jan Hubicka  <jh@suse.cz>
11549
11550         PR middle-end/45871
11551         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
11552         use get_ref_base_and_offset to handle references.
11553         (fold_const_aggregate_ref): Update.
11554
11555 2010-10-04  Martin Jambor  <mjambor@suse.cz>
11556
11557         PR tree-optimization/45572
11558         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
11559         ipa_check_create_node_params.
11560         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
11561
11562 2010-10-04  Yao Qi  <yao@codesourcery.com>
11563
11564         * doc/passes.texi: Clean up.
11565
11566 2010-10-03  Ian Lance Taylor  <iant@google.com>
11567
11568         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
11569         referring to a field using a typedef name.
11570         (find_anonymous_field_with_type): New static function.
11571         (convert_to_anonymous_field): New static function.
11572         (convert_for_assignment): If -fplan9-extensions, permit converting
11573         pointer to struct to pointer to anonymous field.
11574         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
11575         (is_duplicate_field): New static function.
11576         (detect_field_duplicates_hash): If -fplan9-extensions, check for
11577         typedef names duplicating field names.
11578         (detect_field_duplicates): Likewise.
11579         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
11580         (C Dialect Options): Document -fplan9-extensions.
11581         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
11582
11583 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
11584
11585         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
11586         revision 164914.
11587         (vect_create_data_ref_ptr): Likewise.
11588         * tree-vect-stmts.c (vectorizable_store): Likewise.
11589         (perm_mask_for_reverse): Likewise.
11590         (reverse_vec_elements): Likewise.
11591         (vectorizable_load): Likewise.
11592
11593 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
11594
11595         * cppbuiltin.c: New file.
11596         * cppbuiltin.h: New file.
11597         * Makefile.in: Take into account cppbuiltin.{h,c}.
11598
11599 2010-10-03  Andi Kleen  <ak@linux.intel.com>
11600
11601         * lto-cgraph.c (input_cgraph): Check for missing sections.
11602
11603 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
11604
11605         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
11606         to nonimmediate_operand.  Force operand 2 to register when allowed.
11607         (*<shiftrt_insn><mode>3_mask): Ditto.
11608         (*<rotate_insn><mode>3_mask): Ditto.
11609
11610 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
11611
11612         PR tree-optimization/45720
11613         PR tree-optimization/45764
11614         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
11615         Don't accept backwards consecutive accesses.
11616         (vect_create_data_ref_ptr): Disallow negative steps.
11617
11618         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
11619         (perm_mask_for_reverse): Removed.
11620         (reverse_vec_elements): Likewise.
11621         (vectorizable_load): Don't handle negative steps.
11622
11623 2010-10-02  Jan Hubicka  <jh@suse.cz>
11624
11625         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
11626         call destination is known.
11627
11628 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11629
11630         PR target/45820
11631         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
11632         earlier.
11633
11634 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11635
11636         * doc/install.texi (Configuration): Document build_configargs,
11637         host_configargs, target_configargs.
11638
11639 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
11640
11641         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
11642         (*<shiftrt_insn><mode>3_mask): Ditto.
11643         (*<rotate_insn><mode>3_mask): Ditto.
11644
11645 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
11646
11647         PR tree-optimization/44716
11648         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
11649         (HOT_TEXT_SECTION_NAME): Define.
11650
11651 2010-10-01  Nick Clifton  <nickc@redhat.com>
11652
11653         * common.opt: Add -fcombine-stack-adjustments.
11654         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
11655         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
11656         flag_combine_stack_adjustments.
11657         * doc/invoke.texi: Document the new option.
11658
11659 2010-10-01  Richard Guenther  <rguenther@suse.de>
11660
11661         PR tree-optimization/45854
11662         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
11663
11664 2010-10-01  Anthony Green  <green@moxielogic.com>
11665
11666         * config.gcc: Fix moxie-*-rtems* configuration.
11667
11668 2010-10-01  Richard Guenther  <rguenther@suse.de>
11669
11670         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
11671         (gen_decl_die): Likewise.
11672
11673 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11674
11675         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
11676         to the function code for SPU MD builtins.
11677         (spu_expand_builtin): Update.
11678         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
11679
11680 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11681
11682         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
11683         sjlj_except_unwind_info.
11684
11685 2010-10-01  Tristan Gingold  <gingold@adacore.com>
11686
11687         * configure.ac: Define the nop insn for avr*-*-*
11688         * configure: Regenerate.
11689
11690 2010-10-01  Alan Modra  <amodra@gmail.com>
11691
11692         PR target/45807
11693         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
11694         extend toc_restore_insn.
11695
11696 2010-09-30  Richard Guenther  <rguenther@suse.de>
11697
11698         PR tree-optimization/43959
11699         * function.c (gimplify_parameters): Use create_tmp_reg instead of
11700         create_tmp_var.
11701
11702 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
11703
11704         * config/sh/sh.c (sh_expand_prologue): Set
11705         current_function_static_stack_size.
11706
11707 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11708
11709         * configure.ac: Check for Solaris 8 ld with .hidden support.
11710         * configure: Regenerate.
11711
11712 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11713
11714         PR middle-end/45758
11715         * graphite.c (graphite_initialize): Call scev_reset.
11716
11717 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11718
11719         * sese.h (scev_analyzable_p): Return false for real or floating
11720         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
11721
11722 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11723
11724         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
11725         and ps.
11726         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
11727         domain.
11728         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
11729         Do not allocate ub_expr, it is passed in initialized.
11730
11731 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
11732
11733         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
11734         (build_cloog_prog): Dump CLooG input file when
11735         flag_graphite_dump_cloog is set.  This is disabled on trunk.
11736         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
11737
11738 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11739
11740         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
11741         verify_dominators for CDI_POST_DOMINATORS.
11742         * sese.h: Remove comment about CDI_POST_DOMINATORS.
11743         (recompute_all_dominators): Remove call to free_dominance_info
11744         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
11745         for CDI_POST_DOMINATORS.
11746
11747 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11748
11749         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
11750         over pbb_dim_iter_domain.
11751
11752 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11753
11754         * graphite-flattening.c: Fix comments.
11755
11756 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11757
11758         * Makefile.in (OBJS-common): Add graphite-flattening.o.
11759         (graphite-flattening.o): New rule.
11760         * common.opt (floop-flatten): New flag.
11761         * doc/invoke.texi (-floop-flatten): Documented.
11762         * graphite-flattening.c: New.
11763         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
11764         * graphite-poly.h (flatten_all_loops): Declared.
11765         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
11766         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
11767         is set, also set flag_graphite.
11768
11769 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11770
11771         * graphite-poly.c (cloog_checksum): New.
11772         * graphite-poly.h (cloog_checksum): Declared.
11773
11774 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11775
11776         * graphite-poly.c (pbb_number_of_iterations): Removed.
11777         (pbb_number_of_iterations_at_time): Correctly compute the number
11778         of iterations in the transformed loop.
11779         * graphite-poly.h (pbb_number_of_iterations): Removed.
11780
11781 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11782
11783         * graphite-poly.h (lst_update_scattering_seq): Removed.
11784         (lst_update_scattering): Correctly handle outermost loop dewey
11785         renumbering.
11786
11787 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11788
11789         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
11790         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
11791         * graphite-poly.h (lst_niter_for_loop): New.
11792
11793 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11794
11795         * graphite-poly.c (apply_poly_transforms): Do not abort when the
11796         transform read from disk is not legal.  Call fatal_error instead.
11797
11798 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11799
11800         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
11801         (print_scop_header): Removed.  Inlined in the only call place...
11802         (print_scop): ... here.
11803
11804 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11805
11806         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
11807
11808 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11809
11810         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
11811
11812 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11813
11814         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
11815         (dot_deps_stmt): Same.
11816         * graphite-poly.c (dot_lst): Same.
11817
11818 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11819
11820         * graphite-blocking.c (scop_do_strip_mine): Do not call
11821         graphite_legal_transform.
11822         (scop_do_block): Same.
11823
11824 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
11825
11826         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
11827         description.
11828
11829 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11830
11831         * tree-scalar-evolution.c (instantiate_array_ref): New.
11832         (instantiate_scev_r): Also handle ARRAY_REFs.
11833
11834 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11835
11836         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
11837         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
11838         RESULT_DECL, and FIELD_DECL.  Return false for an
11839         SSA_NAME_IS_DEFAULT_DEF.
11840         (compute_scalar_evolution_in_loop): Do not further analyze the
11841         scalar evolution when no_evolution_in_loop_p returns true.
11842
11843 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11844
11845         * tree-chrec.h (evolution_function_is_affine_p): Do not check
11846         whether CHREC_LEFT is invariant.  A function is affine when
11847         CHREC_RIGHT is invariant.
11848
11849 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11850
11851         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
11852         is_gimple_reg.
11853         (rewrite_degenerate_phi): Same.
11854         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
11855
11856 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
11857
11858         * graphite-scop-detection.c (graphite_can_represent_scev,
11859         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
11860         graphite_can_represent_loop): Remove outermost_loop.
11861
11862 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11863
11864         PR middle-end/45229
11865         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
11866         handle GIMPLE_CALLs with no LHS.
11867
11868 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
11869
11870         * graphite-poly.c (init_graphite_out_file): New.
11871         (init_graphite_in_file): New.
11872         (apply_poly_transforms): Updated to enable reading and writing of
11873         multiple scop files.
11874
11875 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
11876
11877         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
11878         redundant checks.
11879
11880 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11881
11882         * graphite-clast-to-gimple.c (precision_for_value): Adjust
11883         computation of precision by 1.
11884
11885 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
11886
11887         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
11888         (openscop_read_polyhedron_matrix): New.
11889         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
11890         (openscop_read_N_int): Same.
11891         * graphite-poly.c (openscop_read_N_int): New.
11892         (openscop_read_one_int): New.
11893         (openscop_read_N_string): New.
11894         (openscop_read_one_string): New.
11895         (openscop_read_powerset_matrix): New.
11896         (graphite_read_transforms): Remove.
11897         (graphite_read_scatt): New.
11898         (graphite_read_scop_file): New.
11899         (apply_poly_transforms): Updated to call graphite_read_scop_file.
11900
11901 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
11902
11903         * graphite-poly.c: Change include order.
11904
11905 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
11906
11907         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
11908         (cloog_matrix_nrows): New.
11909
11910 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
11911
11912         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
11913         from matrix lines.
11914         * graphite-poly.c (openscop_print_scattering_function_1): Same.
11915         (print_scattering_function_1): Same.
11916         (openscop_print_pbb_domain): Same.
11917         (openscop_print_scop_context): Same.
11918         (print_scop_context): Same.
11919
11920 2010-09-30  Riyadh Baghdad  <baghdadi.mr@gmail.com>
11921
11922         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
11923         (openscop_print_pdr_polyhedron): Print pph.
11924
11925 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11926
11927         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
11928         priority signed types.
11929
11930 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11931
11932         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
11933         the call to lang_hooks.types.type_for_size.  Call
11934         build_nonstandard_integer_type.
11935
11936 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
11937
11938         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
11939         (openscop_print_polyhedron_matrix): New.
11940         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
11941         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
11942         (openscop_print_pdr_powerset): New.
11943         (openscop_print_powerset_matrix): New.
11944         (openscop_print_scattering_function_1): New.
11945         (print_scattering_function): Add support for scattering names and
11946         OpenScop format.
11947         (graphite_write_transforms): Remove.
11948         (print_pdr_access_layout): Updated to support OpenScop format.
11949         (print_pdr): Same.
11950         (openscop_print_pbb_domain): New.
11951         (print_pbb_body): Added a parameter to allow indicating that pbb_body
11952         is not provided.
11953         (print_pbb): Updated to call the new print_pbb_body.
11954         (openscop_print_scop_context): New.
11955         (print_scop_header): New.
11956         (print_scop): Updated to call print_scop_header.
11957         * graphite-poly.h: Document OpenScop format.
11958
11959 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
11960
11961         * config/cris/m32c.c (cris_memory_move_cost): New.
11962         (cris_register_move_cost): Make static. Change arguments type from
11963         enum reg_class to reg_class_t.
11964         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
11965         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
11966         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
11967
11968 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
11969
11970         PR target/45843
11971         * config/i386/i386.c (ix86_gimplify_va_arg): Use
11972         INTVAL (XEXP (slot, 1)) as prev_size.
11973
11974 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
11975
11976         PR target/45837
11977         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
11978         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
11979         defined.
11980         * config/rs6000/option-defaults.h (toplevel): Change #if
11981         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
11982         global option changes.
11983
11984 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
11985
11986         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
11987
11988         PR tree-optimization/31261
11989         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
11990         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
11991
11992 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11993
11994         PR bootstrap/45796
11995         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
11996         special-casing for generators and turn into ...
11997         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
11998         rule, for better error messages in case of toplevel dependency errors.
11999         (genprog): Add hooks, rename to ...
12000         (genprogerr): ... this, and let genprog also contain check,
12001         checksum, condmd.
12002         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
12003         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
12004         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
12005
12006 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
12007             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12008
12009         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
12010         for GMP, MPFR and MPC.
12011
12012 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12013
12014         * config/sparc/sparc.opt (mimpure-text): Move ...
12015         * config/sol2.opt: ... here.  Correct description.
12016         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
12017         * doc/invoke.texi (Option Summary, SPARC Options): Move
12018         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
12019         (Option Summary, Solaris 2 Options): ... here.
12020         (Submodel Options, Solaris 2 Options): New menu entry.
12021         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
12022         (Solaris 2 Options): ... here.
12023
12024 2010-09-30  Michael Eager  <eager@eagercon.com>
12025
12026         * extend.texi (interrupt_handler): Add MicroBlaze to list.
12027         (save_volatiles): Describe option for MicroBlaze.
12028         * invoke.texi: Add MicroBlaze Options.
12029         * contrib.texi: Add acknowledgment.
12030         * md.texi: Add MicroBlaze d and z constraints.
12031         * install.texi: Add microblaze-*-elf.
12032         * configure.ac: Add microblaze-*-* to target list.
12033         * configure: Regenerate.
12034         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
12035         * config/microblaze/microblaze-protos.h: New.
12036         * config/microblaze/crti.s: New.
12037         * config/microblaze/predicates.md: New.
12038         * config/microblaze/linux.h: New.
12039         * config/microblaze/microblaze.md: New.
12040         * config/microblaze/constraints.md: New.
12041         * config/microblaze/crtn.s: New.
12042         * config/microblaze/microblaze.opt: New.
12043         * config/microblaze/microblaze-c.c: New.
12044         * config/microblaze/t-microblaze: New.
12045         * config/microblaze/microblaze.c: New.
12046         * config/microblaze/microblaze.h: New.
12047
12048 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
12049
12050         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
12051         parse @optional/@required and set the flags as appropriate.
12052
12053 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
12054
12055         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
12056
12057 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
12058
12059         * opt-functions.awk (static_var): Update comment.
12060         (var_ref): Return offsetof expression or -1, not variable address.
12061         * optc-gen.awk: Generate structure field initializers instead of
12062         static variables.  Expect -1 for missing variables instead of null
12063         pointer.  Add gcc_options parameters to generated functions.
12064         * opth-gen.awk: Generate structure fields for static variables.
12065         Add gcc_options parameters to generated functions.
12066         * common.opt (optimize, optimize_size): Add variables.
12067         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
12068         &global_options to cl_target_option_restore.
12069         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
12070         &global_options to cl_optimization_restore, cl_target_option_save
12071         and cl_target_option_restore.
12072         (ix86_set_current_function): Pass &global_options to
12073         cl_target_option_restore.
12074         * config/pdp11/pdp11.h (optimize): Remove.
12075         * config/rs6000/rs6000.h (optimize): Remove.
12076         * config/sh/sh.h (optimize): Remove.
12077         * config/xtensa/xtensa.h (optimize): Remove.
12078         * coretypes.h (struct gcc_options): Declare.
12079         * diagnostic.c (diagnostic_initialize): Initialize
12080         context->option_state.
12081         (diagnostic_report_diagnostic): Pass option_state to
12082         option_enabled hook.
12083         * diagnostic.h (diagnostic_context.option_enabled): Add void *
12084         parameter.
12085         (diagnostic_context.option_state): New field.
12086         * final.c (final_start_function, final, final_scan_insn): Rename
12087         optimize parameter to optimize_p.
12088         * flags.h (optimize, optimize_size): Remove.
12089         * function.c (invoke_set_current_function_hook): Pass
12090         &global_options to cl_optimization_restore.
12091         * gcc.c (driver_handle_option): Take gcc_options parameter.
12092         Assert that it is &global_options.
12093         (process_command): Pass &global_options to read_cmdline_option.
12094         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
12095         option_enabled.
12096         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
12097         &global_options to set_option.
12098         * opts-common.c (handle_option, handle_generated_option,
12099         read_cmdline_option, set_option): Take explicit gcc_options
12100         parameters.  Use option_flag_var.
12101         (option_flag_var): New.
12102         * opts.c (common_handle_option, lang_handle_option,
12103         target_handle_option): Take gcc_options parameter.  Assert that it
12104         is &global_options.
12105         (read_cmdline_options): Pass &global_options to read_cmdline_option.
12106         (print_filtered_help): Use option_flag_var.  Pass &global_options
12107         to option_enabled.
12108         (common_handle_option): Use option_flag_var.
12109         (option_enabled): Take opts parameter.  Use option_flag_var.
12110         (get_option_state): Take gcc_options parameter.  Use
12111         option_flag_var.  Pass gcc_options parameter to option_enabled.
12112         (enable_warning_as_error): Pass &global_options to
12113         handle_generated_option.
12114         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
12115         (cl_option_handler_func.handler): Take gcc_options parameter.
12116         (option_enabled, get_option_state, set_option, handle_option,
12117         handle_generated_option, read_cmdline_option): Take gcc_options
12118         parameters.
12119         * toplev.c (optimize, optimize_size): Remove.
12120         (print_switch_values): Pass &global_options to option_enabled.
12121         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
12122         to get_option_state.
12123         (general_init): Initialize global_dc->option_state.
12124         * tree.c (build_optimization_node): Pass &global_options to
12125         cl_optimization_save.
12126         (build_target_option_node): Pass &global_options to
12127         cl_target_option_save.
12128
12129 2010-09-30  Martin Jambor  <mjambor@suse.cz>
12130
12131         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
12132         zero sized bit-fields.
12133
12134 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
12135
12136         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
12137         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
12138         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
12139         (c_parser_objc_class_declaration): Same change.
12140         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
12141         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
12142         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
12143         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
12144         and RID_AT_PUBLIC instead of RID_PUBLIC.
12145         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
12146         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
12147
12148 2010-09-30  Tom G. Christensen  <tgc@jupiterrise.com>
12149
12150         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
12151         Add links to current providers of packages for Solaris and IRIX.
12152
12153 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
12154
12155         Merge from 'apple/trunk' branch on FSF servers.
12156         * c-parser.c: Applied change originally in c-parse.in.
12157
12158         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
12159
12160         Radar 4281748
12161         * c-decl.c (start_decl): Check for redeclaration of class name.
12162         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
12163
12164 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
12165
12166         * config/ia64/ia64.c (ia64_builtin_decl): New.
12167         (TARGET_BUILTIN_DECL): Define.
12168         (ia64_builtins): New.
12169         (ia64_init_builtins): Save decls in ia64_builtins.
12170
12171 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
12172
12173         PR target/40457
12174         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
12175         (move2add_use_add3_insn): Likewise.
12176         (reload_cse_move2add): Likewise.
12177         * rtlanal.c (get_full_rtx_cost): New function.
12178         * rtl.h (struct full_rtx_costs): New.
12179         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
12180         costs_add_n_insns): New inline functions.
12181         (get_full_rtx_cost): Declare.
12182
12183         PR c/45054
12184         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
12185         invariants.  Check for reg_equiv_invariant.
12186         (reload): Assert that spilled_pseudos is empty when returning.
12187
12188 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
12189
12190         * config/i386/mingw32.h (TARGET_64BIT): replaced by
12191         TARGET_64BIT_DEFAULT in #if check.
12192
12193 2010-09-29  Jack Howarth  <howarth@bromo.med.uc.edu>
12194
12195         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
12196
12197 2010-09-29  Mike Stump  <mikestump@comcast.net>
12198
12199         * config/darwin.h (flag_mkernel): Remove.
12200         (flag_apple_kext): Likewise.
12201
12202 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
12203             Jack Howarth  <howarth@bromo.med.uc.edu>
12204
12205         * config/darwin.opt (undefined): Add.
12206
12207 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
12208
12209         PR testsuite/45664
12210         * configure.ac: Add --enable-indirect-function option.
12211         * config.gcc: Add default_gnu_indirect_function.
12212         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
12213         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
12214         * varasm.c (do_assemble_alias): Adjust for macro name change.
12215         * configure: Rebuilt.
12216         * doc/install.texi: Document --enable-indirect-function.
12217
12218 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
12219
12220         * doc/options.texi (Variable, Var, Init): Update documentation
12221         without reference to VarExists.
12222         (VarExists): Remove.
12223         * common.opt, config/i386/i386.opt, config/linux.opt,
12224         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
12225         Don't use VarExists.
12226
12227 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
12228
12229         * optc-gen.awk: Generate global_options initializer instead of
12230         individual variables.  Add x_ prefix to names of structure members.
12231         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
12232         names of structure members.
12233         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
12234         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
12235         * doc/tm.texi: Regenerate.
12236         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
12237         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
12238         * c-parser.c (disable_extension_diagnostics,
12239         restore_extension_diagnostics): Update names of cpp_options members.
12240         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
12241         * common.opt (fcompare-debug-second): Don't use Var.
12242         * config/alpha/alpha.h (target_flags): Remove.
12243         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
12244         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
12245         * config/bfin/bfin.h (target_flags): Remove.
12246         * config/cris/cris.h (target_flags): Remove.
12247         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
12248         cl_target_option members.
12249         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
12250         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
12251         ix86_can_inline_p): Update names of cl_target_option members.
12252         * config/i386/i386.h (ix86_isa_flags): Remove.
12253         * config/lm32/lm32.h (target_flags): Remove.
12254         * config/mcore/mcore.h (mcore_stack_increment): Remove.
12255         * config/mcore/mcore.md (addsi3): Remove extern declaration of
12256         flag_omit_frame_pointer.
12257         * config/mep/mep.h (target_flags): Remove.
12258         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
12259         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
12260         * config/mmix/mmix.h (target_flags): Remove.
12261         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
12262         flag_expensive_optimizations): Remove.
12263         * config/s390/s390.h (flag_pic): Remove.
12264         * config/score/score-conv.h (target_flags): Remove.
12265         * config/sh/sh.h (sh_fixed_range_str): Remove.
12266         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
12267         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
12268         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
12269         * diagnostic.c (diagnostic_initialize): Update names of
12270         diagnostic_context members.
12271         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
12272         warn_system_headers.
12273         (diagnostic_report_warnings_p): Update for new names.
12274         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
12275         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
12276         HARD_FRAME_POINTER_IS_ARG_POINTER.
12277         * flags.h (flag_compare_debug): Declare.
12278         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
12279         * opts.c (flag_compare_debug): Define.
12280         (common_handle_option): Update names of diagnostic_context
12281         members.  Handle -fcompare-debug-second.
12282         (fast_math_flags_struct_set_p): Update names of cl_optimization
12283         members.
12284         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
12285         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
12286         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
12287         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
12288         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
12289         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
12290         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
12291         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
12292         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
12293
12294 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
12295
12296         * config/picochip/picochip.c (picochip_output_internal_label):
12297         This function can now be called for debug CFI labels, which can come
12298         in the middle of a vliw instruction.  Postpone until end of vliw.
12299
12300 2010-09-29  Richard Guenther  <rguenther@suse.de>
12301
12302         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
12303         (DECL_FILE_SCOPE_P): Use it.
12304         (TYPE_FILE_SCOPE_P): New macro.
12305
12306 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
12307
12308         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
12309         a CPP_NAME which is a reserved word, clearly separate cases for
12310         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
12311
12312 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
12313
12314         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
12315         token->value with the canonical spelling.  Do exactly like C and
12316         C++ and leave it as it is.
12317
12318 2010-09-28  Richard Henderson  <rth@redhat.com>
12319
12320         * config/alpha/alpha.c (alpha_builtins): New.
12321         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
12322         (alpha_builtin_function): New.
12323         (alpha_add_builtins, alpha_init_builtins): Use it.
12324
12325 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
12326
12327         * doc/standards.texi (Standards): Expanded the section on
12328         Objective-C and Objective-C++.
12329
12330 2010-09-28  DJ Delorie  <dj@redhat.com>
12331
12332         PR target/45800
12333         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
12334         volatile MEMs.
12335
12336 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
12337
12338         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
12339         attributes on methods.
12340          (c_parser_objc_method_definition): Handle attributes.
12341         (c_parser_objc_methodproto): Likewise.
12342         (c_parser_objc_maybe_method_attributes): New.
12343         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
12344         missing definition, similar to that in ObjC++.
12345
12346 2010-09-28  Richard Henderson  <rth@redhat.com>
12347
12348         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
12349         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
12350         (CONFIG_SJLJ_EXCEPTIONS): Remove.
12351         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
12352         (STACK_CHECK_PROTECT): Likewise.
12353         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
12354         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
12355         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
12356         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
12357         (dwarf2out_assembly_start): Likewise.
12358         * except.c (init_eh): Use targetm.except_unwind_info.
12359         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
12360         (output_one_function_exception_table): Likewise.
12361         * final.c: Unconditionally include dwarf2out.h.
12362         (final_start_function): Unconditionally call dwarf2out routines.
12363         (final_end_function, final_scan_insn): Likewise.
12364         * function.c (expand_function_end): Use targetm.except_unwind_info.
12365         * opts.c (decode_options): Use targetm.except_unwind_info.
12366         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
12367         * target.def (debug_unwind_info, except_unwind_info): New.
12368         * target.h (enum unwind_info_type): New.
12369         * targhooks.c (default_debug_unwind_info): New.
12370         (default_except_unwind_info): New.
12371         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
12372         * targhooks.h: Declare them.
12373         * tree-tailcall.c: Include "target.h"
12374         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
12375         * Makefile.in (tree-tailcall.o): Update.
12376         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
12377         (lhd_gcc_personality): Likewise.
12378
12379         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
12380         (TARGET_EXCEPT_UNWIND_INFO): New.
12381         (DWARF2_UNWIND_INFO): Update.
12382         (TARGET_DEBUG_UNWIND_INFO): New.
12383         * doc/tm.texi: Rebuild.
12384
12385         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
12386         targetm.except_unwind_info.
12387
12388         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
12389         (arm_except_unwind_info): New.
12390         (arm_compute_func_type): Use it.
12391         (arm_expand_prologue, thumb_pushpop): Likewise.
12392         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
12393         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
12394         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
12395         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
12396         (DWARF2_UNWIND_INFO): Remove.
12397         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
12398         (ARM_EABI_UNWIND_TABLES): Remove.
12399
12400         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
12401         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
12402         (ia64_except_unwind_info): New.
12403         (ia64_output_function_prologue): Use it.
12404         (ia64_add_bundle_selector_before): Likewise.
12405         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
12406         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
12407         (TARGET_UNWIND_INFO): Remove.
12408
12409         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
12410
12411 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
12412
12413         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
12414         (c_parser_objc_protocol_definition): Likewise.
12415         (c_parser_external_declaration): Provide dummy attribute arguments.
12416         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
12417         (c_parser_objc_class_definition): Handle attributes.
12418         (c_parser_objc_protocol_definition): Likewise.
12419
12420 2010-09-28  Tobias Burnus  <burnus@net-b.de>
12421
12422         PR fortran/40569
12423         PR fortran/40568
12424         * toplev.h (save_decoded_options, save_decoded_options_count):
12425         New global variables.
12426         * toplev.c (save_decoded_options, save_decoded_options_count):
12427         Export variables.
12428
12429 2010-09-28  Ian Lance Taylor  <iant@google.com>
12430
12431         * config/i386/i386.c (ix86_supports_split_stack): Test
12432         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
12433
12434 2010-09-28  Ian Lance Taylor  <iant@google.com>
12435
12436         PR target/45815
12437         * opts.c (decode_options): Don't test whether the target supports
12438         split stack if flag_split_stack == 0.
12439
12440 2010-09-28  Jan Hubicka  <jh@suse.cz>
12441
12442         * builtin-attrs.def (ATTR_LEAF): New attribute.
12443         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
12444         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
12445         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
12446         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
12447         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
12448         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
12449         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
12450         * sync-builtins.def: Annotate all builtins by leaf.
12451         * omp-builtins.def: Annotate all builtins by leaf.
12452         * builtins.def: Annotate relevant builtins with leaf attribute.
12453         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
12454         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
12455         leaf.
12456
12457 2010-09-28  Jan Hubicka  <jh@suse.cz>
12458
12459         * tree-ssa-ccp.c (fold_ctor_reference): New function.
12460         (fold_const_aggregate_ref): Use it.
12461         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
12462         into external static.
12463
12464 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12465
12466         PR target/44452
12467         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
12468         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
12469         (ix86_solaris_return_in_memory): Remove.
12470         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
12471         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
12472         (TARGET_SUBTARGET_DEFAULT): Redefine.
12473         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
12474         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
12475         (TARGET_SUBTARGET_DEFAULT): Redefine.
12476         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
12477         -mvect8-ret-in-mem.
12478         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
12479
12480 2010-09-29  Alan Modra  <amodra@gmail.com>
12481
12482         PR target/45807
12483         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
12484         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
12485         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
12486         Delete.
12487         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
12488         (rs6000_emit_prologue): Don't just create frame save info for r2,
12489         actually save r2.
12490
12491 2010-09-28  Richard Henderson  <rth@redhat.com>
12492
12493         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
12494         when 8 bytes are requested.
12495
12496 2010-09-28  Tristan Gingold  <gingold@adacore.com>
12497
12498         * config/avr/avr.c (expand_prologue): Set
12499         current_function_static_stack_size.
12500
12501 2010-09-28  Tristan Gingold  <gingold@adacore.com>
12502
12503         * config/alpha/alpha.md: Change the initial condition of the
12504         probing loop.
12505
12506 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
12507
12508         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
12509         Split from *avx_<maxmin:code><mode>3.
12510         (*avx_<smaxmin:code><mode>3): Ditto.
12511         * config/i386/i386.md (maxmin): Remove code iterator.
12512
12513 2010-09-27  Ian Lance Taylor  <iant@google.com>
12514
12515         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
12516         requires assembler support for CFI directives.
12517
12518 2010-09-27  Richard Henderson  <rth@redhat.com>
12519
12520         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
12521
12522 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
12523
12524         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
12525         that AFTER is not in the range FROM..TO, inclusive.
12526
12527 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
12528             Bernd Schmidt  <bernds@codesourcery.com>
12529
12530         PR rtl-optimization/45792
12531         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
12532         If not all insns are to be merged, for each edge, stash the
12533         next candidate after the to-be-merged insns before doing the
12534         merge, and use them for the retry at the new insertion point.
12535         Handle CC0 targets when retrying.
12536
12537 2010-09-27  Ian Lance Taylor  <iant@google.com>
12538
12539         * common.opt (fsplit-stack): New option.
12540         * opts.c (decode_options): Set flag_split_stack to final value.
12541         * target.def (supports_split_stack): New hook.
12542         * gcc.c (STACK_SPLIT_SPEC): Define.
12543         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
12544         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
12545         (Code Gen Options): Document -fsplit-stack.
12546         * doc/extend.texi (Function Attributes): Mention no_split_stack.
12547         (Function Attributes): Document no_split_stack.
12548         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
12549         TARGET_SUPPORTS_SPLIT_STACK.
12550         * doc/tm.texi: Rebuild.
12551         * function.c (thread_prologue_and_epilogue_insns): If
12552         flag_split_stack, add split stack prologue.
12553         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
12554         * varasm.c (saw_no_split_stack): New static variable.
12555         (assemble_start_function): Set saw_no_split_stack if the function
12556         has the no_split_stack attribute.
12557         (file_end_indicate_split_stack): New function.
12558         * output.h (file_end_indicate_split_stack): Declare.
12559         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
12560         and function.
12561         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
12562         routines.
12563         * config/i386/i386.c (ix86_option_override_internal): Don't set
12564         expand_builtin_va_start to NULL if -fsplit-stack.
12565         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
12566         -fsplit-stack.
12567         (ix86_va_start): If -fsplit-stack, get overflow pointer from
12568         scratch register set by prologue.
12569         (ix86_code_end): If -fsplit-stack, call
12570         file_end_indicate_split_stack.
12571         (ix86_supports_split_stack): New static function.
12572         (SPLIT_STACK_AVAILABLE): Define.
12573         (split_stack_prologue_scratch_regno): New static function.
12574         (split_stack_fn): New static variable.
12575         (ix86_expand_split_stack_prologue): New function.
12576         (ix86_live_on_entry): New static function.
12577         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
12578         (output_pic_addr_const): Likewise.
12579         (i386_asm_output_addr_const_extra): Likewise.
12580         (ix86_expand_call): Change return type to rtx.  Return the new
12581         call instruction.
12582         (TARGET_SUPPORTS_SPLIT_STACK): Define.
12583         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
12584         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
12585         (split_stack_prologue, split_stack_return): New insns.
12586         (split_stack_space_check): New insn.
12587         * config/i386/i386.h (struct machine_function): Add
12588         split_stack_varargs_pointer field.
12589         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
12590         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
12591         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
12592         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
12593         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
12594         Declare.
12595         (ix86_expand_call): Update declaration.
12596
12597 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
12598
12599         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
12600         code.  Added byref, which was missing in the list of codes.
12601         Explain that enumeration values are encoded as the integer type
12602         that the compiler uses to store them.  Explain and make examples
12603         of how 'const' interacts with pointers, and the complication of
12604         the encoding of 'const char *'.
12605         (Legacy type encoding): New subsection, explaining that GCC emits
12606         incorrect type encodings for the NeXT runtime for compatibility
12607         reasons.
12608         (@@encode): New subsection, explaining @encode and particularly
12609         that protocol qualifiers are not recognized inside an @encode()
12610         expression.
12611         (Method signatures): New subsection, explaining how method
12612         signatures are encoded.
12613
12614 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
12615
12616         Merge from 'apple/trunk' branch on FSF servers.  Removed small
12617         change in build_conditional_expr that had been added when fixing
12618         PR objc/27377 and which did the same check in a less complete way.
12619
12620         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
12621
12622         Radar 4229905
12623         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
12624         looking for objective-c common pointer types.
12625
12626         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
12627
12628         Radar 4154928
12629         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
12630         use their ObjC common type.
12631
12632 2010-09-27  Richard Guenther  <rguenther@suse.de>
12633
12634         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
12635
12636 2010-09-27  Jie Zhang  <jie@codesourcery.com>
12637
12638         * print-tree.c (print_node): Print in-constant-pool.
12639
12640 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
12641
12642         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
12643         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
12644         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
12645         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
12646
12647 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
12648
12649         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
12650         from pro_epilogue_adjust_stack_<mode>_{1,2}.
12651         (pro_epilogue_adjust_stack_<mode>_add): Rename from
12652         pro_epilogue_adjust_stack_<mode>_3.
12653         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
12654         renamed pro_epilogue_adjust_stack_{si,di}_add.
12655         (ix86_expand_prologue): Use indirect functions.  Update for renamed
12656         pro_epilogue_adjust_stack_{si,di}_sub.
12657
12658 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
12659
12660         * config/i386/i386.md (movmsk_df): New insn.
12661         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
12662         sequence for TARGET_SSE_MATH.
12663
12664 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
12665
12666         * config/mips/mips.c (mips_builtin_decls): Declare.
12667         (mips_init_builtins): Store function declarations in
12668         mips_builtin_decls.
12669         (mips_builtin_decl): New function.
12670         (TARGET_BUILTIN_DECL): Define.
12671
12672 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
12673             Richard Henderson  <rth@redhat.com>
12674
12675         * config/i386/cygwin.asm: Include auto-host.h.
12676         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
12677         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
12678         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
12679         alignment code from the 64-bit path.  Use gas local labels.
12680         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
12681         from _di_2.  Remove the useless constant integer argument.
12682         (pro_epilogue_adjust_stack_<mode>_3): New.
12683         (allocate_stack_worker_probe_<mode>): Macroize from
12684         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
12685         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
12686         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
12687         (__chkstk_ms): New function.
12688         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
12689         * config/i386/t-interix: Likewise.
12690         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
12691         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
12692         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
12693         * configure, config.in: Rebuild.
12694
12695 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
12696
12697         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
12698         statements because of the return slot optimization.
12699
12700 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
12701
12702         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
12703         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
12704         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
12705         (class_likely_spilled_p): Rename to...
12706         (avr_class_likely_spilled_p): ...this. Make static. Change argument
12707         type to reg_class_t.
12708
12709 2010-09-24  Jan Hubicka  <jh@suse.cz>
12710
12711         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
12712         (lto_symtab_resolve_symbols): Set it.
12713         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
12714         store resolution field in cgraph/varpool.
12715         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
12716         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
12717         (cgraph_dump_node): Drop used_from_object_file.
12718         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
12719         (cgraph_function_body_availability): Use decl_replaceable_p.
12720         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
12721         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
12722         cgraph_used_from_object_file_p.
12723         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
12724         cgraph_used_from_object_file_p.
12725         (resolution_used_from_other_file_p): New functoin.
12726         (cgraph_used_from_object_file_p): New predicate.
12727         * cgraph.h: Include plugin-api.h
12728         (struct cgraph_local_info): Remove used_from_object_file.
12729         (struct cgraph_node): Add resolution field.
12730         (struct varpool_node): Likewise; remove used_from_object_file;
12731         reove const_value_known.
12732         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
12733         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
12734         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
12735         varpool_used_from_object_file_p): Declare.
12736         (varpool_get_node, varpool_extra_name_alias): Update prototype.
12737         * tree.h (DECL_REPLACEABLE_P): Remove.
12738         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
12739         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
12740         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
12741         input_overwrite_node, input_node, input_varpool_node): Stream
12742         resolution.
12743         * expr.c (expand_expr_real_1): Use const_value_known_p
12744         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
12745         const_value_known.
12746         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
12747         (function_and_variable_visibility): Set resolution for local vars
12748         and functions; use varpool_used_from_object_file_p.
12749         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
12750         static functions.
12751         (default_binds_local_p_1): Use resolutoin info.
12752         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
12753         * varpool.c (varpool_get_node): Constify.
12754         (const_value_known_p): Do not use vnode->const_value_known;
12755         use decl_replaceable_p.
12756         (varpool_finalize_decl): Do not set const_value_known.
12757         (cgraph_variable_initializer_availability): Use decl_replaceable_p
12758         (varpool_extra_name_alias): Return new node.
12759         (varpool_used_from_object_file_p): New function.
12760
12761 2010-09-24  Richard Henderson  <rth@redhat.com>
12762
12763         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
12764         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
12765         (do_spill): Use REG_CFA_OFFSET.
12766         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
12767         as appropriate.
12768         (ia64_expand_epilogue): Likewise.
12769         (process_set): Split into ...
12770         (process_cfa_adjust_cfa): this,
12771         (process_cfa_register): this,
12772         (process_cfa_offset): and this new function.
12773         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
12774         instead of REG_FRAME_RELATED_EXPR.
12775
12776 2010-09-24  Olivier Hainque  <hainque@adacore.com>
12777
12778         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
12779
12780 2010-09-24  Jan Hubicka  <jh@suse.cz>
12781
12782         * doc/extend.texi: (attribute leaf): Document.
12783         * tree.c (local_define_builtin): Handle ECF_LEAF.
12784         (build_common_builtin_nodes): Set ECF_LEAF where needed.
12785         * tree.h (ECF_LEAF): New.
12786         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
12787         overwrittable and unavailable functions.
12788         (ipa_init): Put all_module_statics into optimization_summary_obstack.
12789         (copy_global_bitmap): Do not copy all_module_statics.
12790         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
12791         (propagate): Handle overwritable and unavailable leaf functions;
12792         initialize global info for overwritable and unavailable leaf functions;
12793         do not free all module statics.
12794         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
12795         local statics.
12796         * calls.c (flags_from_decl_or_type): Handle leaf.
12797         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
12798         abnormal gotos.
12799
12800 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
12801
12802         * gengtype.c: Reindented.
12803         * gengtype.h: Reindented.
12804         * gengtype-parse.c: Reindented.
12805
12806 2010-09-24  Jan Hubicka  <jh@suse.cz>
12807
12808         PR tree-optimization/45738
12809         PR tree-optimization/45741
12810         * expr.c (string_constant): Allow CONST_DECL too;
12811         check that DECL_INITIAL is set.
12812         * varpool.c (const_value_known_p): Only look into VAR_DECL
12813         and CONST_DECL.
12814
12815 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
12816
12817         * common.opt (undef): New.
12818
12819 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
12820
12821         PR middle-end/45234
12822         * rtl.h (enum global_rtl_index): Add
12823         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
12824         (LAST_VIRTUAL_POINTER_REGISTER): Define.
12825         (virtual_preferred_stack_boundary_rtx,
12826         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
12827         (LAST_VIRTUAL_REGISTER): Increase by one.
12828         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
12829         instead of LAST_VIRTUAL_REGISTER.
12830         * function.c (instantiate_new_reg): Handle
12831         virtual_preferred_stack_boundary_rtx.
12832         * emit-rtl.c (init_virtual_regs): Handle
12833         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
12834         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
12835         * explow.c (round_push): If crtl->preferred_stack_boundary
12836         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
12837         virtual_preferred_stack_boundary_rtx alignment instead of
12838         crtl->preferred_stack_boundary alignment.
12839         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
12840         macros.  Never decrease crtl->preferred_stack_boundary,
12841         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
12842         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
12843         stack_pointer_delta in dynamic allocation, even when size
12844         is constant.
12845         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
12846         macro.
12847         * print-rtl.c (print_rtx): Handle
12848         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
12849         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
12850         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
12851         * config/frv/frv.c (frv_emit_movsi): Likewise.
12852         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
12853         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
12854         Likewise.
12855
12856         Revert:
12857         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
12858
12859         PR middle-end/45234
12860         * calls.c (expand_call): Make sure that all variable sized
12861         adjustments are multiple of preferred stack boundary after
12862         stack alignment.
12863
12864 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
12865             Dominique Dhumieres  <dominiq@lps.ens.fr>
12866
12867         PR bootstrap/45751
12868         * config/darwin-driver.c (darwin_default_min_version):
12869         Adjust size passed to memcpy in two places.
12870
12871 2010-09-24  Richard Guenther  <rguenther@suse.de>
12872
12873         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
12874         Make sure to not call set_type_context with error_mark_node.
12875         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
12876
12877 2010-09-24  Richard Guenther  <rguenther@suse.de>
12878
12879         * Makefile.in (OBJS-onestep): Remove.
12880         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
12881         (libbackend.a): Remove onestep support.
12882         (libbackend.o): Remove.
12883         * configure.ac (--enable-intermodule): Remove.
12884         * configure: Regenerate.
12885
12886 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
12887
12888         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
12889         reaching the end of a block if it occurs at a DEBUG_INSN.
12890
12891 2010-09-09  Tristan Gingold  <gingold@adacore.com>
12892
12893         PR target/44242
12894         * config/vms/vms-crt0-64.c: Removed.
12895         * config/vms/vms-crt0.c: Removed.
12896         * config/vms/vms-psxcrt0-64.c: Removed.
12897         * config/vms/vms-psxcrt0.c: Removed.
12898         * config/vms/vms-ucrt0.c: New file.
12899         * config/vms/t-vms64: Removed.
12900         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
12901         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
12902         * config.gcc (alpha-dec-vms): Use t-vms.
12903
12904 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
12905
12906         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
12907         underfull hbox in DVI output.
12908         (-fobjc-class-cxx-cdtors): Same change.
12909         (-fobjc-exceptions): Tidied up documentation.  Explain what the
12910         option does, but moved the (lenghty) description of the exception
12911         syntax into objc.texi.
12912         (-fobjc-gc): Explain that the option is not useful with the GNU
12913         runtime.
12914         (-fzero-link): Explain that the GNU runtime always works in
12915         "zero-link" mode.
12916         * doc/objc.texi: All sections: simplified @node declarations
12917         removing specification of next, previous, up node.
12918         (Objective-C): Updated introduction.
12919         (Garbage Collection): Updated.  The bohem-gc library is now
12920         included in gcc itself.  Mention that this section only applies to
12921         the GNU Objective-C runtime.
12922         (compatibility_alias): Small tidy up.
12923         (Exceptions): New section mostly containing text previously in the
12924         description of the -fobjc-exception command-line option.
12925         (Synchronization): Same.
12926
12927 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
12928
12929         * config/i386/i386.md (ix86_code_end): Move the initialization of
12930         xops array near the consumer.  Use AX_REG and SP_REG instead of
12931         numerical constants.
12932
12933 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
12934
12935         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
12936         method [methodname]' for an Objective-C method instead of the less
12937         satisfactory 'too many arguments to function' (with no method name).
12938
12939 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
12940
12941         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
12942         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
12943         (execute_update_addresses_taken): Remove parameter.  Execute the
12944         optimization unconditionally.
12945         * passes.c (execute_function_todo): Call execute_update_addresses_taken
12946         unconditionally if TODO_rebuild_alias is set, else only when optimizing
12947         if TODO_update_address_taken is set.
12948
12949 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
12950
12951         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
12952         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
12953         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
12954         (arm_output_addr_const_extra): Make static.
12955
12956 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
12957
12958         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
12959         define as unspec_volatile.
12960         ("nops"): Define as unspec_volatile. Use fputs to write to
12961         asm_out_file directly.  Output NOPs on separate lines using while loop.
12962         * config/i386/i386.c (ix86_code_end): Use fputs to write to
12963         asm_out_file directly.  Output NOPs on separate lines using while loop.
12964
12965 2010-09-23  Richard Guenther  <rguenther@suse.de>
12966
12967         PR tree-optimization/45565
12968         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
12969         Make sure to adjust the fndecl before replacing the stmt.
12970
12971 2010-09-23  Richard Guenther  <rguenther@suse.de>
12972
12973         PR middle-end/45750
12974         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
12975         gimplifying MEM_REF.
12976
12977 2010-09-23  Alan Modra  <amodra@gmail.com>
12978
12979         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
12980         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
12981
12982 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
12983
12984         PR rtl-optimization/44374
12985         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
12986         * df-core.c (df_set_bb_dirty): Set it.
12987         * ifcvt.c (find_memory): Remove function.
12988         (dead_or_predicable): Use can_move_insns_across.
12989         * df.h (can_move_insns_across): Declare function.
12990         * cfgcleanup.c (block_was_dirty): New static variable.
12991         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
12992         than df_get_bb_dirty.
12993         (try_head_merge_bb): New static function.
12994         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
12995         is set.
12996         * df-problems.c: Include "target.h"
12997         (df_simulate_find_uses): New static function.
12998         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
12999         (find_memory, find_memory_store): New static functions.
13000         (can_move_insns_across): New function.
13001         * Makefile.in (df-problems.o): Update dependencies.
13002
13003 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
13004
13005         PR java/44095
13006         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
13007         is specified and the suffix of the file isn't ".c".
13008         * config/sparc/linux64.h (ASM_SPEC): Likewise.
13009
13010 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13011
13012         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
13013         * doc/cppopts.texi: Fix markup of index entry.
13014         * doc/extend.texi (Constructing Calls): Fix markup of
13015         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
13016         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
13017         (Vague Linkage, C++ Attributes): Fix markup of index entries and
13018         keywords.
13019         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
13020         avoid long lines.
13021         (C Dialect Options, C++ Dialect Options, Warning Options)
13022         (Debugging Options, Spec Files, Darwin Options)
13023         (i386 and x86-64 Options, MIPS Options)
13024         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
13025         index entries, avoid abbreviations, allow URLs to wrap, avoid
13026         long lines, avoid overlong pages from long @itemx lists.
13027         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
13028         * doc/standards.texi (Standards): Likewise.
13029         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
13030
13031 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
13032
13033         * opts-common.c (prune_options): Make static.  Work with decoded
13034         options.
13035         (decode_cmdline_options_to_array): Call prune_options.  Don't
13036         resize option array here.
13037         * opts.h (prune_options): Remove prototype.
13038         * gcc.c (process_command): Take decoded options; don't call
13039         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
13040         (main): Call decode_cmdline_options_to_array here instead of
13041         prune_options.  Update call to process_command.
13042         * config/darwin-driver.c: Include opts.h.
13043         (darwin_default_min_version): Work with decoded options.  Don't
13044         handle -b or -V here.
13045         * config/darwin.h (darwin_default_min_version): Update prototype.
13046         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
13047         darwin_default_min_version.
13048         * config/i386/cygwin.h (mingw_scan): Update prototype.
13049         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
13050         * config/i386/cygwin1.c: Include opts.h.
13051         (mingw_scan): Work with decoded options.
13052         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
13053         * config/t-darwin (darwin-driver.o): Update dependencies.
13054
13055 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
13056
13057         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
13058         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
13059         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
13060         -force-link, -force-link=, -language, -language=,
13061         -library-directory, -library-directory=, -no-canonical-prefixes,
13062         -no-standard-libraries, -no-warnings, -optimize, -output,
13063         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
13064         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
13065         -print-file-name=, -print-libgcc-file-name,
13066         -print-multi-directory, -print-multi-lib,
13067         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
13068         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
13069         -profile, -save-temps, -shared, -specs, -specs=, -static,
13070         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
13071         symbolic): New.
13072         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
13073         * gcc.c (A Short Introduction to Adding a Command-Line Option):
13074         Remove comment.
13075         (cc1_options): Correct specs for passing down --help,
13076         --target-help and --help=*.  Add spec for passing down --version.
13077         (struct option_map, option_map, target_option_translations,
13078         translate_options): Remove.
13079         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
13080         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
13081         OPT_fhelp_ and OPT_ftarget_help.
13082         (process_command): Don't call translate_options.  Call
13083         decode_cmdline_options_to_array before checking for
13084         -no-canonical-prefixes using decoded options.
13085         * opts-common.c (tm.h): Update comment on #include.
13086         (find_opt): Allow abbreviations of long options.
13087         (struct option_map, option_map): New.
13088         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
13089         and -mno handling.
13090         (target_option_translations): New.
13091         (decode_cmdline_options_to_array): Handle
13092         TARGET_OPTION_TRANSLATE_TABLE in driver.
13093         * opts.c (common_handle_option): Don't handle OPT_fhelp,
13094         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
13095
13096 2010-09-22  Richard Guenther  <rguenther@suse.de>
13097
13098         * tree-inline.c (optimize_inline_calls): Schedule cleanups
13099         only if we inlined something.  Block compaction and conditional
13100         folding are done by cfg cleanup.  Schedule update-address-taken.
13101         (tree_function_versioning): Remove redundant call to number_blocks.
13102         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
13103         folding is done by cfg cleanup.
13104         * passes.c (init_optimization_passes): Remove update-address-taken
13105         pass after IPA inlining.
13106
13107 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
13108
13109         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
13110         to update conditions. Fix reg_mode[] check.
13111
13112 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
13113
13114         * config/picochip/picochip.md (movhicc): Use expand to check whether
13115         movhicc is available and split it after reload.
13116
13117 2010-09-22  Richard Guenther  <rguenther@suse.de>
13118
13119         * tree-ssanames.c (release_dead_ssa_names): Do not remove
13120         callee edges here.
13121         * passes.c (init_optimization_passes): Remove early CFG cleanup.
13122         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
13123         (pass_cleanup_cfg): Likewise.
13124         (execute_fixup_cfg): Cleanup.
13125         * tree-pass.h (pass_cleanup_cfg): Remove.
13126
13127 2010-09-22  Martin Jambor  <mjambor@suse.cz>
13128
13129         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
13130         builtins if it is true.
13131         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
13132         parameter.
13133
13134 2010-09-22  Martin Jambor  <mjambor@suse.cz>
13135
13136         * tree-sra.c (struct access): New field grp_no_warning.
13137         (create_access_replacement): Set TREE_NO_WARNING according to
13138          grp_no_warning.
13139         (create_artificial_child_access): Use build_ref_for_model and set
13140         grp_no_warning if build_user_friendly_ref_for_offset fails.
13141         (propagate_subaccesses_across_link): Likewise.
13142
13143 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
13144
13145         PR target/35664
13146         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
13147         ('f'): Likewise.
13148
13149 2010-09-22  Tristan Gingold  <gingold@adacore.com>
13150
13151         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
13152
13153 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
13154
13155         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
13156         * config/i386/i386.c (decide_alg): Update for rename.
13157
13158 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
13159
13160         PR rtl-optimization/45739
13161         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
13162         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
13163
13164 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
13165
13166         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
13167         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
13168         Remove.
13169         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
13170         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
13171
13172 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
13173
13174         PR objc/23710
13175         * c-parser.c (c_parser_objc_method_definition): Check the return
13176         value of objc_start_method_definition and if false is returned,
13177         parse the method definition but emit no code.
13178
13179 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
13180
13181         PR objc/25965
13182         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
13183         call objc_get_interface_ivars ().
13184
13185 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
13186
13187         PR target/45694
13188         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
13189         static chain-register is used for 64-bit.
13190
13191 2010-09-21  Richard Guenther  <rguenther@suse.de>
13192
13193         * dwarf2out.c (is_cu_die): New function.
13194         (add_pubtype): Use it.
13195         (gen_subprogram_die): Likewise.
13196         (gen_struct_or_union_type_die): Likewise.
13197         (dwarf2out_finish): Likewise.
13198         (comp_unit_die): Rename to ...
13199         (single_comp_unit_die): ... this.
13200         (comp_unit_die): New function lazily constructing and
13201         returning single_comp_unit_die.
13202         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
13203         base_type_die, subrange_type_die, modified_type_die,
13204         lower_bound_default, add_bound_info, add_prototyped_attribute,
13205         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
13206         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
13207         force_decl_die, gen_namespace_die, dwarf2out_decl,
13208         dwarf2out_start_source_file, dwarf2out_end_source_file,
13209         prune_unused_types, dwarf2out_finish): Use it.
13210         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
13211         the global list of translation-unit decls.
13212         (dwarf2out_init): Do not create single_comp_unit_die here.
13213         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
13214
13215 2010-09-21  Richard Guenther  <rguenther@suse.de>
13216
13217         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
13218         for bool for C++.
13219
13220 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
13221
13222         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
13223         (qhs_extenddi_cstr): Likewise.
13224         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
13225         them for the source operand.
13226
13227 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
13228
13229         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
13230         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
13231         (ix86_split_ashr): Ditto.
13232         (ix86_split_lshr): Ditto.
13233
13234 2010-09-21  Richard Guenther  <rguenther@suse.de>
13235
13236         PR tree-optimization/45580
13237         * tree-ssa-propagate.c (substitute_and_fold): Always replace
13238         regular uses.
13239         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
13240         virtuals fold the call into a regular indirect one.
13241
13242 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
13243
13244         PR rtl-optimization/42775
13245         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
13246         scheduling is enabled.
13247
13248 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
13249
13250         PR rtl-optimization/45728
13251         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
13252         gen_lowpart_common first and if that fails, force_reg first
13253         before calling gen_lowpart.
13254
13255         PR middle-end/45678
13256         * cfgexpand.c (expand_one_stack_var_at): Use
13257         crtl->max_used_stack_slot_alignment as max_align, instead
13258         of maximum of that and PREFERRED_STACK_BOUNDARY.
13259         Don't call update_stack_alignment.
13260
13261 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
13262
13263         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
13264         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
13265         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
13266         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
13267         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
13268         (build_nonstandard_integer_type): Likewise.
13269         (build_range_type_1): New function, built from...
13270         (build_range_type): ...this.  Call build_range_type_1.
13271         (build_nonshared_range_type): New function.
13272         (build_array_type_1): New function, built from...
13273         (build_array_type: ...this.  Call build_array_type_1.
13274         (build_nonshared_array_type): New function.
13275         * tree.h (build_nonshared_range_type): Declare.
13276         (build_nonshared_array_type): Likewise.
13277
13278 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
13279
13280         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
13281         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13282         (arm_class_likely_spilled_p): New function.
13283
13284 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
13285
13286         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
13287         indirect functions.
13288         (ix86_split_ashl): Ditto.
13289         (ix86_split_ashr): Ditto.
13290         (ix86_split_lshr): Ditto.
13291         (ix86_adjust_counter): Ditto.
13292
13293 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
13294
13295         * c-family/c-common.h (constant_string_class): Documented with
13296         comment identical to the one already in c-common.c.
13297
13298 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
13299
13300         * dwarf2out.c (any_cfis_emitted): New static variable.
13301         (add_fde_cfi): Set it.
13302         (dwarf2out_frame_debug): Clear it before processing,
13303         if it is set afterwards, flush any queued reg saves.
13304
13305         PR debug/45124
13306         * dwarf2out.c (add_accessibility_attribute): Assume
13307         DW_ACCESS_private as the default for dwarf_version > 2
13308         and DW_TAG_class_type parent.
13309         (gen_inheritance_die): Assume DW_ACCESS_public as the default
13310         for dwarf_version > 2 and parent other than DW_TAG_class_type.
13311
13312 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
13313
13314         PR target/45726
13315         * arm.md (arm_movt): Only enable on machines with MOVT.
13316
13317 2010-09-20  Jie Zhang  <jie@codesourcery.com>
13318
13319         * config/arm/arm.c (arm_address_offset_is_imm): New.
13320         (arm_early_store_addr_dep): New.
13321         (arm_early_load_addr_dep): New.
13322         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
13323         (arm_early_load_addr_dep): Declare.
13324         (arm_address_offset_is_imm): Declare.
13325         * config/arm/cortex-m4.md: New file.
13326         * config/arm/cortex-m4-fpu.md: New file.
13327         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
13328         (attr generic_sched): Exclude cortexm4.
13329         (attr generic_vfp): Exclude cortexm4.
13330
13331 2010-09-20  Richard Guenther  <rguenther@suse.de>
13332
13333         PR middle-end/45704
13334         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
13335
13336 2010-09-20  Jan Hubicka  <jh@suse.cz>
13337
13338         PR tree-optimize/45605
13339         * cgraph.h (const_value_known_p): Declare.
13340         (varpool_decide_const_value_known): Remove.
13341         * tree-ssa-ccp.c (get_base_constructor): Use it.
13342         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
13343         * expr.c (string_constant): Likewise.
13344         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
13345         * ipa.c (ipa_discover_readonly_nonaddressable_var,
13346         function_and_variable_visibility): Likewise.
13347         * gimplify.c (gimplify_call_expr): Likewise.
13348         * gimple-fold.c (get_symbol_constant_value): Likewise.
13349         * varpool.c (varpool_decide_const_value_known): Replace by...
13350         (const_value_known_p): ... this one; handle other kinds of DECLs
13351         too and work for automatic vars.
13352         (varpool_finalize_decl): Use const_value_known_p.
13353
13354 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
13355
13356         PR target/45726
13357         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
13358
13359 2010-09-20  Richard Guenther  <rguenther@suse.de>
13360
13361         PR tree-optimization/45705
13362         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
13363
13364 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
13365
13366         PR rtl-optimization/45695
13367         * combine.c (try_combine): When splitting a two set pattern,
13368         make sure the pattern which will be put into i2 doesn't use REGs
13369         or MEMs set by insns in between i2 and i3.
13370
13371 2010-09-19  Jan Hubicka  <jh@suse.cz>
13372
13373         PR lto/44246
13374         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
13375         processing same node twice.
13376
13377 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
13378
13379         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
13380         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13381         (bfin_class_likely_spilled_p): New function
13382
13383 2010-09-19  Ira Rosen  <irar@il.ibm.com>
13384
13385         PR tree-optimization/45714
13386         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
13387         created in vectorizable_call instead of the original statement in
13388         def stmt updates.
13389
13390 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
13391
13392         * config/i386/i386-protos.h (split_double_mode): New prototype.
13393         (split_di, split_ti): Remove prototypes.
13394         * config/i386/i386.c (split_double_mode): New function.
13395         (split_di, split_ti): Remove.
13396         (ix86_expand_branch): Use split_double_mode.
13397         (ix86_split_to_parts): Ditto.
13398         (ix86_split_ashl): Ditto.
13399         (ix86_split_ashr): Ditto.
13400         (ix86_split_lshr): Ditto.
13401         (ix86_force_to_memory): Ditto.
13402         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
13403
13404 2010-09-18  Jan Hubicka  <jh@suse.cz>
13405
13406         PR tree-optimization/45453
13407         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
13408         virtual functions are reachable.
13409         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
13410         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
13411         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
13412         when modifying function.
13413
13414 2010-09-18  Jan Hubicka  <jh@suse.cz>
13415
13416         PR tree-optimization/45605
13417         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
13418         * gimple-fold.c (static_object_in_other_unit_p): New function.
13419         (canonicalize_constructor_val): Use it.
13420         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
13421         returning NULL.
13422         (gimple_fold_obj_type_ref_known_binfo): Use
13423         static_object_in_other_unit_p.
13424
13425 2010-09-18  Richard Guenther  <rguenther@suse.de>
13426
13427         PR tree-optimization/45709
13428         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
13429         insertions until after all PHI nodes of the block are processed.
13430
13431 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
13432
13433         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
13434
13435 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
13436
13437         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
13438
13439 2010-09-18  Richard Guenther  <rguenther@suse.de>
13440
13441         PR tree-optimization/45709
13442         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
13443
13444 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
13445
13446         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
13447         (dot_deps_stmt): Same.
13448         * graphite-poly.c (dot_lst): Same.
13449         * graphite-scop-detection.c (dot_all_scops): Same.
13450         (dot_scop): Same.
13451
13452 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
13453
13454         Revert:
13455         2009-12-16  Ben Elliston  <bje@au.ibm.com>
13456
13457         * tree-data-ref.c (dot_rdg_1): Added back.
13458         (dot_rdg): Same.  Added "#if 0" around system call.
13459
13460 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
13461             Richard Henderson  <rth@redhat.com>
13462
13463         * config/i386/i386.c (initial_ix86_tune_features): Add
13464         X86_TUNE_PAD_SHORT_FUNCTION.
13465         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
13466         (ix86_count_insn): New.
13467         (ix86_pad_short_function): Likewise.
13468         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
13469
13470         * config/i386/i386.h (ix86_tune_indices): Add
13471         X86_TUNE_PAD_SHORT_FUNCTION.
13472         (TARGET_PAD_SHORT_FUNCTION): New.
13473
13474         * config/i386/i386.md (UNSPEC_NOPS): New.
13475         (nops): Likewise.
13476
13477 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
13478
13479         PR middle-end/45234
13480         * calls.c (expand_call): Make sure that all variable sized
13481         adjustments are multiple of preferred stack boundary after
13482         stack alignment.
13483
13484 2010-09-17  DJ Delorie  <dj@redhat.com>
13485
13486         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
13487         passed an invalid value, print an error instead of ICEing.
13488         (valid_psw_flag): New.
13489         (rx_expand_builtin): Call it for setpsw/clrpsw.
13490         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
13491
13492         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
13493         (bitclr_in_memory): Likewise.
13494         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
13495
13496 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
13497
13498         PR middle-end/45678
13499         * cfgexpand.c (update_stack_alignment): New.
13500         (get_decl_align_unit): Use it.
13501         (expand_one_stack_var_at): Call update_stack_alignment.
13502
13503 2010-09-17  Richard Guenther  <rguenther@suse.de>
13504
13505         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
13506         Properly copy the read string.
13507
13508 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
13509
13510         * doc/options.texi (Variable): Document.
13511         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
13512         generate target_flags declarations explicitly.  Don't define
13513         VarExists variables for the driver.
13514         * common.opt (target_flags): New Variable record.
13515         (flag_dump_unnumbered, flag_dump_unnumbered_links,
13516         flag_var_tracking, flag_var_tracking_assignments,
13517         flag_var_tracking_assignments_toggle): Don't mark variables with
13518         VarExists.
13519         * config/i386/i386.c (ix86_isa_flags): Don't define here.
13520         * config/i386/i386.opt (ix86_isa_flags): Define here.
13521         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
13522         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
13523         VarExists.
13524         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
13525         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
13526         Only define for generator programs.
13527         * rtlanal.c (target_flags): Remove.
13528         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
13529         flag_var_tracking_assignments_toggle): Remove.
13530
13531 2010-09-17  Michael Matz  <matz@suse.de>
13532
13533         PR tree-optimization/43432
13534         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
13535         Accept backwards consecutive accesses.
13536         (vect_create_data_ref_ptr): If step is negative generate
13537         decreasing IVs.
13538         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
13539         (perm_mask_for_reverse, reverse_vec_elements): New functions.
13540         (vectorizable_load): Handle loads with negative steps when easily
13541         possible.
13542
13543 2010-09-03  Jan Hubicka  <jh@suse.cz>
13544
13545         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
13546
13547 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
13548
13549         * config/v850/v850.c (v850_function_value_regno_p): Make static.
13550         Adjust comments. Declare.
13551         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
13552         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
13553
13554 2010-09-17  Richard Guenther  <rguenther@suse.de>
13555
13556         * common.opt (combine): Remove.
13557         * gcc.c (default_compilers): Remove specs testing combine.
13558         The C compilers no longer can combine.
13559         (option_map): Remove -combine.
13560         (display_help): Remove -combine.
13561         (driver_handle_option): Remove OPT_combine handling.
13562         (compile_input_file_p): Remove.
13563         (do_spec): Remove code concerning combine.
13564         (main): Likewise.
13565         * doc/invoke.texi: Remove traces of -combine.
13566         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
13567
13568 2010-09-17  Richard Guenther  <rguenther@suse.de>
13569
13570         PR middle-end/45678
13571         * builtins.c (fold_builtin_memory_op): Always properly adjust
13572         alignment of memory accesses.
13573
13574 2010-09-16  Jan Hubicka  <jh@suse.cz>
13575
13576         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
13577         processing clone.
13578
13579 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
13580
13581         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
13582
13583         * config/i386/i386.c (predict_jump): Add prototype.
13584         (flag_opts): Add -m8bit-idiv.
13585         (ix86_split_idivmod): New.
13586
13587         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
13588         Add 2 splitters for SI/DI mode divide.
13589         (divmod<mode>4_1): New pattern.
13590         (udivmod<mode>4_1): Likewise.
13591         (testdi_ccno_1): Likewise.
13592
13593         * config/i386/i386.opt (m8bit-idiv): New.
13594
13595         * doc/invoke.texi: Document -m8bit-idiv.
13596
13597 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
13598
13599         PR bootstrap/45680
13600         * config/i386/i386.c (min_insn_size): Moved out of the
13601         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
13602
13603 2010-09-16  Jan Hubicka  <jh@suse.cz>
13604
13605         * lto-cgraph.c (lto_output_node): Fix handling of clones.
13606         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
13607         unreachable clones with reachable clones.
13608         * tree-inline.c (copy_bb): Fix sanity checking when producing
13609         unreachable clone.
13610
13611 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
13612
13613         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
13614         (TARGET_MEMORY_MOVE_COST): Define.
13615         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
13616
13617 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
13618
13619         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
13620         maybe_tidy_empty_bb.
13621
13622         Revert:
13623         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
13624         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
13625
13626 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
13627
13628         * target.def (target_option.optimization): New hook.
13629         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
13630         TARGET_OPTION_OPTIMIZATION hook.
13631         * doc/tm.texi: Regenerate.
13632         * hooks.c (hook_void_int_int): New.
13633         * hooks.h (hook_void_int_int): Declare.
13634         * opts.c: Don't include tm_p.h.
13635         (decode_options): Use targetm.target_option.optimization instead
13636         of OPTIMIZATION_OPTIONS.
13637         * system.h (OPTIMIZATION_OPTIONS): Poison.
13638         * config/arm/arm-protos.h (arm_optimization_options): Remove.
13639         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
13640         (arm_optimization_options): Rename to arm_option_optimization.
13641         Make static.
13642         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
13643         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
13644         (cris_option_optimization): New.
13645         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
13646         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
13647         (crx_option_optimization): New.
13648         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
13649         * config/frv/frv-protos.h (frv_optimization_options): Remove.
13650         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
13651         (frv_optimization_options): Rename to frv_option_optimization.
13652         Make static.
13653         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
13654         * config/h8300/h8300.c (h8300_option_optimization): New.
13655         (TARGET_OPTION_OPTIMIZATION): Define.
13656         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
13657         * config/i386/i386-protos.h (optimization_options): Remove.
13658         * config/i386/i386.c (optimization_options): Rename to
13659         ix86_option_optimization.  Make static.
13660         (TARGET_OPTION_OPTIMIZATION): Define.
13661         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
13662         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
13663         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
13664         (ia64_optimization_options): Rename to ia64_option_optimization.
13665         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
13666         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
13667         commented-out definition.
13668         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
13669         instead of OPTIMIZATION_OPTIONS.
13670         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
13671         (m32r_option_optimization): New.
13672         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
13673         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
13674         Remove.
13675         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
13676         (mcore_option_optimization): New.
13677         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
13678         * config/mep/mep-protos.h (mep_optimization_options): Remove.
13679         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
13680         (mep_optimization_options): Rename to mep_option_optimization.
13681         Make static.  Take unused level and size parameters.
13682         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
13683         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
13684         (mmix_option_optimization): New.
13685         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
13686         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
13687         (pdp11_option_optimization): New.
13688         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
13689         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
13690         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
13691         (optimization_options): Rename to rs6000_option_optimization.
13692         Make static.
13693         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
13694         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
13695         * config/rx/rx.c (rx_set_optimization_options): Rename to
13696         rx_option_optimization.  Make static.  Take unused level and size
13697         parameters.
13698         (TARGET_OPTION_OPTIMIZATION): Define.
13699         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
13700         * config/s390/s390-protos.h (optimization_options): Remove.
13701         * config/s390/s390.c (optimization_options): Rename to
13702         s390_option_optimization.  Make static.  Don't mark size parameter
13703         unused.
13704         (TARGET_OPTION_OPTIMIZATION): Define.
13705         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
13706         * config/sh/sh-protos.h (sh_optimization_options): Remove.
13707         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
13708         (sh_optimization_options): Rename to sh_option_optimization.  Make
13709         static.  Don't mark parameters unused.
13710         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
13711         * config/spu/spu-protos.h (spu_optimization_options): Remove.
13712         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
13713         (spu_optimization_options): Rename to spu_option_optimization.
13714         Make static.
13715         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
13716         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
13717         (v850_option_optimization): New.
13718         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
13719         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
13720         (xtensa_option_optimization): New.
13721         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
13722
13723 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
13724
13725         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
13726         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
13727         * doc/tm.texi: Regenerate.
13728         * system.h (OVERRIDE_OPTIONS): Poison.
13729         * target.def (override): Default to hook_void_void.
13730         * targhooks.c (default_target_option_override): Remove.
13731         * genmodes.c, machmode.def: Update comments mentioning
13732         OVERRIDE_OPTIONS.
13733         * config/alpha/alpha-modes.def: Update comment mentioning
13734         alpha_override_options.
13735         * config/alpha/alpha-protos.h (override_options): Remove.
13736         * config/alpha/alpha.c (override_options): Rename to
13737         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
13738         (TARGET_OPTION_OVERRIDE): Define.
13739         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
13740         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
13741         of OVERRIDE_OPTIONS.
13742         * config/arc/arc-protos.h (arc_init): Remove.
13743         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
13744         (arc_init): Rename to arc_option_override.  Make static.
13745         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
13746         (OVERRIDE_OPTIONS): Remove.
13747         * config/arm/arm-protos.h (arm_override_options): Remove.
13748         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
13749         (arm_override_options): Rename to arm_option_override.  Make
13750         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
13751         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
13752         * config/arm/arm.md: Update comment referring to arm_override_options.
13753         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
13754         instead of OVERRIDE_OPTIONS.
13755         * config/avr/avr-protos.h (avr_override_options): Remove.
13756         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
13757         (avr_override_options): Rename to avr_option_override.  Make static.
13758         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
13759         * config/bfin/bfin-protos.h (override_options): Remove (twice).
13760         * config/bfin/bfin.c (override_options): Rename to
13761         bfin_option_override.  Make static.
13762         (TARGET_OPTION_OVERRIDE): Define.
13763         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
13764         * config/cris/cris-protos.h (cris_override_options): Remove.
13765         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
13766         (cris_override_options): Rename to cris_option_override.  Make static.
13767         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
13768         * config/frv/frv-protos.h (frv_override_options): Remove.
13769         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
13770         (frv_override_options): Rename to frv_option_override.  Make static.
13771         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
13772         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
13773         * config/h8300/h8300.c (h8300_init_once): Rename to
13774         h8300_option_override.  Make static.
13775         (TARGET_OPTION_OVERRIDE): Define.
13776         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
13777         * config/i386/i386-protos.h (override_options): Remove.
13778         * config/i386/i386.c (override_options): Rename to
13779         ix86_option_override_internal.  Make static.  Comments referring
13780         to this function and callers changed.
13781         (ix86_option_override): New.
13782         (TARGET_OPTION_OVERRIDE): Define.
13783         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
13784         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
13785         * config/ia64/ia64.c (ia64_file_start): Update comment referring
13786         to ia64_override_options.
13787         * config/iq2000/iq2000-protos.h (override_options): Remove.
13788         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
13789         (override_options): Rename to iq2000_option_override.  Make static.
13790         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
13791         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
13792         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
13793         (lm32_override_options): Rename to lm32_option_override.  Make static.
13794         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
13795         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
13796         (m32r_option_override): New.
13797         (m32r_init): Update comment.
13798         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
13799         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
13800         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
13801         (m68hc11_override_options): Rename to m68hc11_option_override.
13802         Make static.  Return void.
13803         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
13804         * config/m68k/m68k-protos.h (override_options): Remove.
13805         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
13806         (override_options): Rename to m68k_option_override.  Make static.
13807         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
13808         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
13809         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
13810         (mcore_override_options): Rename to mcore_option_override.  Make
13811         static.
13812         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
13813         * config/mep/mep-protos.h (mep_override_options): Remove.
13814         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
13815         (mep_override_options): Rename to mep_option_override.  Make static.
13816         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
13817         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
13818         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
13819         (mmix_override_options): Rename to mmix_option_override.  Make static.
13820         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
13821         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
13822         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
13823         (mn10300_override_options): Rename to mn10300_option_override.
13824         Make static.
13825         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
13826         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
13827         * config/moxie/moxie.c (moxie_override_options): Rename to
13828         moxie_option_override.  Make static.
13829         (TARGET_OPTION_OVERRIDE): Define.
13830         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
13831         * config/picochip/picochip-protos.h (picochip_override_options):
13832         Remove.  Update comment referring to picochip_override_options.
13833         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
13834         (picochip_override_options): Rename to picochip_option_override.
13835         Make static.  Update comment and definition of
13836         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
13837         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
13838         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13839         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13840         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13841         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13842         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13843         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
13844         instead of OVERRIDE_OPTIONS.
13845         * config/rs6000/rs6000-modes.def: Update comment referring to
13846         rs6000_override_options.
13847         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
13848         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
13849         (rs6000_override_options): Rename to
13850         rs6000_option_override_internal.  Make static.  Commented
13851         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
13852         (rs6000_option_override): New.
13853         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
13854         instead of OVERRIDE_OPTIONS.
13855         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13856         * config/s390/s390-protos.h (override_options): Remove.
13857         * config/s390/s390.c (override_options): Rename to
13858         s390_option_override.  Make static.
13859         (TARGET_OPTION_OVERRIDE): Define.
13860         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
13861         * config/score/score-protos.h (score_override_options): Remove.
13862         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
13863         (score_override_options): Rename to score_option_override.  Make
13864         static.
13865         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
13866         Update comment referring to override_options.
13867         * config/score/score3.c (score3_override_options): Rename to
13868         score3_option_override.
13869         * config/score/score3.h (score3_override_options): Rename to
13870         score3_option_override.
13871         * config/score/score7.c (score7_override_options): Rename to
13872         score7_option_override.
13873         * config/score/score7.h (score7_override_options): Rename to
13874         score7_option_override.
13875         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
13876         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
13877         (sparc_override_options): Rename to sparc_option_override.  Make
13878         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
13879         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
13880         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
13881         instead of OVERRIDE_OPTIONS.
13882         * config/spu/spu-protos.h (spu_override_options): Remove.
13883         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
13884         (spu_override_options): Rename to spu_option_override.  Make
13885         static.
13886         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
13887         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
13888         OVERRIDE_OPTIONS.
13889         * config/vax/vax-protos.h (override_options): Remove.
13890         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
13891         (override_options): Rename to vax_option_override.  Make static.
13892         Call SUBTARGET_OVERRIDE_OPTIONS.
13893         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
13894         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
13895         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
13896         * config/xtensa/xtensa-protos.h (override_options): Remove.
13897         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
13898         (override_options): Rename to xtensa_option_override.  Make static.
13899         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
13900
13901 2010-09-16  Richard Guenther  <rguenther@suse.de>
13902
13903         PR tree-optimization/45623
13904         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
13905         (get_constraint_for_component_ref): If computing a constraint
13906         for the rhs handle type punning through unions.
13907         (get_constraint_for_address_of): Adjust.
13908         (get_constraint_for_1): Likewise.
13909         (get_constraint_for): Likewise.
13910         (get_constraint_for_rhs): New function.
13911         (do_structure_copy): Adjust.
13912         (make_constraint_to): Likewise.
13913         (handle_const_call): Likewise.
13914         (find_func_aliases): Likewise.
13915         (process_ipa_clobber): Likewise.
13916         (create_variable_info_for): Likewise.
13917
13918 2010-09-16  Ira Rosen  <irar@il.ibm.com>
13919
13920         * tree-vectorizer.c: Fix documentation.
13921         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
13922         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
13923         is_pattern_stmt_p, is_loop_header_bb_p,
13924         stmt_vinfo_set_inside_of_loop_cost,
13925         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
13926         known_alignment_for_access_p): Likewise.
13927         * tree-vect-loop.c: Fix documentation.
13928         (vect_get_cost): Start function name from new line.
13929         * tree-vect-data-refs.c: Fix documentation.
13930         * tree-vect_stmts.c: Likewise.
13931         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
13932         (vectorizable_store): Free vec_oprnds if allocated.
13933         (vectorizable_condition): Initialize several variables to avoid
13934         warnings.
13935         * tree-vect-slp.c: Fix documentation.
13936
13937 2010-09-16  Richard Guenther  <rguenther@suse.de>
13938
13939         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
13940         is TS_TRANSLATION_UNIT_DECL.
13941         (initialize_tree_contains_struct): Adjust.
13942         (all_translation_units): New global vector.
13943         (build_translation_unit_decl): New function.
13944         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
13945         (struct tree_translation_unit_decl): New.
13946         (all_translation_units): Declare.
13947         (union tree_node): Add translation_unit_decl member.
13948         (build_translation_unit_decl): Declare.
13949         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
13950         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
13951         New function.
13952         (pack_value_fields): Call it.
13953         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
13954         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
13955         (lto_output_tree_pointers): Call it.
13956         * lto-streamer-in.c (lto_input_tree_ref): Handle references
13957         to TRANSLATION_UNIT_DECL.
13958         (unpack_ts_translation_unit_decl_value_fields): New function.
13959         (unpack_value_fields): Call it.
13960         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
13961         (lto_input_tree_pointers): Call it.
13962         * lto-streamer.c (check_handled_ts_structures): Adjust.
13963         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
13964         * c-decl.c (all_translation_units): Remove.
13965         (pop_scope): Use build_translation_unit_decl.
13966         (collect_all_refs): Adjust.
13967         (for_each_global_decl): Likewise.
13968         (c_write_global_declarations): Likewise.
13969
13970 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
13971
13972         PR bootstrap/45686
13973         * fold-const.c (fold_checksum_tree): Change slot from const void **
13974         to void **, use CONST_CAST_TREE to store into *slot.
13975
13976 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
13977
13978         * config/i386/i386.md: Remove unneeded empty conditions and
13979         preparation statements from expanders.
13980         * config/i386/mmx.md: Ditto.
13981         * config/i386/sse.md: Ditto.
13982
13983 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
13984
13985         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
13986
13987 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
13988
13989         PR rtl-optimization/45593
13990         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
13991         insns that were in delay slots as stand-alone insns.
13992
13993 2010-09-15  Ian Lance Taylor  <iant@google.com>
13994
13995         * incpath.c (remove_duplicates): If name is not a directory, issue
13996         a warning rather than an error.
13997
13998 2010-09-15  Martin Jambor  <mjambor@suse.cz>
13999
14000         PR middle-end/45644
14001         * tree-sra.c (create_access): Check for bit-fields directly.
14002
14003 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
14004
14005         PR tree-optimization/45633
14006         * tree-cfg.c (verify_gimple_assign_binary): Allow
14007         MINUS_EXPR with lhs and rhs1 pointer vector and
14008         rhs2 sizetype vector.
14009         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
14010         or vector pointer use TER to optimize pointer subtraction.
14011
14012 2010-09-15  Jie Zhang  <jie@codesourcery.com>
14013
14014         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
14015         fcmpd to fcmps.
14016
14017 2010-09-15  Ian Lance Taylor  <iant@google.com>
14018
14019         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
14020
14021 2010-09-15  Ian Lance Taylor  <iant@google.com>
14022
14023         * function.c (get_arg_pointer_save_area): Set
14024         arg_pointer_save_area_init to true.
14025
14026 2010-09-15  Martin Jambor  <mjambor@suse.cz>
14027
14028         * tree-sra.c (generate_subtree_copies): Updated comment.
14029         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
14030         obtained from the statement iterator instead.
14031         (load_assign_lhs_subreplacements): Removed parameters lhs and
14032         right_offset, which is obtained from top_racc instead.  Parameter lacc
14033         is now expected to be the root of the processed tree rather than root's
14034         first child.  Updated all callers.
14035
14036 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
14037
14038         * config/pdp11/pdp11.c (register_move_cost): Rename to
14039         pdp11_register_move_cost.
14040         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
14041         pdp11_register_move_cost.
14042         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
14043         pdp11_register_move_cost instead of register_move_cost.
14044
14045 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
14046
14047         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
14048         pattern for vmovn. Expansion in case of non
14049         -mvectorize-with-neon-quad.
14050         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
14051         non- -mvectorize-with-neon-quad case.
14052         (move_lo_quad_<mode>): New expansion to vmov into low part.
14053         (move_hi_quad_<mode>): New expansion to vmov into high part.
14054         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
14055         (move_lo_quad_v4sf): Likewise.
14056         (move_lo_quad_v8hi): Likewise.
14057         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
14058         low part.
14059         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
14060         high part.
14061         * config/arm/iterators.md (ANY128): New mode iterator.
14062         (V_narrow_pack): New mode attribute.
14063         (V_HALF): Add attribute.
14064         (V_DOUBLE): Add attribute.
14065         (V_mode_nunits): Add attribute.
14066
14067 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
14068
14069         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
14070         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
14071
14072 2010-09-15  Olivier Hainque  <hainque@adacore.com>
14073             Jose Ruiz  <ruiz@adacore.com>
14074
14075         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
14076         * config/alpha/osf5-unwind.h: New file.
14077
14078 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
14079
14080         PR bootstrap/45672
14081         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
14082         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
14083         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
14084
14085 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
14086
14087         * c-lang.h (struct lang_type): Add variable_size GTY option.
14088
14089 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
14090
14091         PR bootstrap/45672
14092         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
14093
14094 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
14095
14096         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
14097         result isn't used in memory address.
14098
14099 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
14100
14101         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
14102         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
14103         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
14104         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
14105         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
14106         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
14107
14108         * target.def: Add units_per_simd_word to vectorize.
14109
14110         * targhooks.c (default_units_per_simd_word): New.
14111         * targhooks.h (default_units_per_simd_word): Likewise.
14112         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
14113         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
14114         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
14115         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
14116         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
14117         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
14118         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
14119         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
14120
14121         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
14122         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
14123
14124         * tree-vect-stmts.c: Don't include "tm_p.h".
14125         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
14126         with targetm.vectorize.units_per_simd_word.
14127
14128         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
14129
14130         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
14131
14132         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
14133         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
14134
14135         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
14136         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
14137
14138         * doc/tm.texi: Regenerated.
14139
14140 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
14141
14142         * tree-vect-stmts.c: Include "tm_p.h".
14143
14144         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
14145         out of RTX_CODE.
14146
14147 2010-09-14  Martin Jambor  <mjambor@suse.cz>
14148
14149         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
14150         location of generated statement.  Changed all callers.
14151         (build_ref_for_model): New parameter loc which used to set location of
14152         all generated expressions.  Changed all callers.
14153         (generate_subtree_copies): Likewise.
14154         (init_subtree_with_zero): Likewise.
14155         (sra_modify_expr): Set locations of all generated statements and
14156         expressions to the location the original statement.
14157         (handle_unscalarized_data_in_subtree): Likewise.
14158         (load_assign_lhs_subreplacements): Likewise.
14159         (sra_modify_constructor_assign): Likewise.
14160         (sra_modify_assign): Likewise.
14161
14162 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
14163
14164         PR target/45277
14165         PR target/45363
14166         PR target/45407
14167         * doc/install.texi (sparc*-*-*): New section.
14168         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
14169
14170 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
14171
14172         PR middle-end/45567
14173         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
14174         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
14175         (expand_builtin): Adjust caller.
14176         (expand_builtin_unop): Only use subtarget if it has the right mode.
14177
14178 2010-09-14  Tristan Gingold  <gingold@adacore.com>
14179
14180         * configure.ac (plugins): Fix typos.
14181         * configure: Regenerate.
14182
14183 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
14184
14185         PR debug/45660
14186         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
14187         gen_type_die for function/method return type.
14188
14189 2010-09-14  Ira Rosen  <irar@il.ibm.com>
14190
14191         PR tree-optimization/45470
14192         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
14193         can throw an exception.
14194         * tree-vect-stmts.c (vectorizable_call): Likewise.
14195
14196 2010-09-14  DJ Delorie  <dj@redhat.com>
14197
14198         PR target/44749
14199         * config/mep/mep-protos.h (mep_save_register_info,
14200         mep_reinit_regs, mep_init_regs): Declare.
14201
14202         * config/mep/mep.c: Move all target definitions to the end of the
14203         file to avoid the need for duplicate declarations.
14204         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
14205         (mep_reorg_erepeat): Remove unused variables.
14206         (mep_expand_builtin): Likewise.
14207
14208         * config/mep/mep-pragma.c: Don't include rtl.h.
14209         (INVALID_REGNUM): New.
14210         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
14211         functions.
14212         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
14213         Avoid enum/integer math.
14214
14215 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
14216
14217         PR target/44749
14218         * config/mep/t-mep (GTM_H): Add insn-constants.h.
14219         * config/mep/mep.c (mep_conditional_register_usage): Take no
14220         parameters.
14221         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
14222         prototype.
14223         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
14224         call to mep_conditional_register_usage.
14225
14226 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
14227
14228         PR debug/43937
14229         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
14230         the DECL as well.
14231
14232 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
14233
14234         PR rtl-optimization/45617
14235         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
14236         even if low N bits of X aren't known to be zero.
14237
14238 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
14239
14240         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
14241
14242         * config/i386/i386.c (initial_ix86_tune_features): Add
14243         X86_TUNE_VECTORIZE_DOUBLE.
14244         (ix86_units_per_simd_word): New.
14245
14246         * config/i386/i386.h (ix86_tune_indices): Add
14247         X86_TUNE_VECTORIZE_DOUBLE.
14248         (TARGET_VECTORIZE_DOUBLE): New.
14249         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
14250
14251 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
14252
14253         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
14254         (new_temp_expr_table): Allocate call_cnt vector.
14255         (free_temp_expr_table): Free it.
14256         (process_replaceable): Add call_cnt parm and set in vector.
14257         (find_replaceable_in_bb): Skip replacement if def/use span a call.
14258         (debug_ter): Dump call_cnt value, remove stderr uses.
14259
14260 2010-09-13  Jan Hubicka  <jh@suse.cz>
14261
14262         * tree.c (build_zero_cst): New.
14263         * tree.h (build_zero_cst): Declare.
14264         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
14265         (get_base_constructor): Break out from ...
14266         (fold_const_aggregate_ref): Here; handle empty constructors.
14267
14268 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
14269
14270         * config/arm/arm.md: (define_attr "conds"): Update comment.
14271         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
14272         conds attribute to clob.
14273         (arm_sync_compare_and_swapsi): Likewise.
14274         (arm_sync_compare_and_swap<mode>): Likewise.
14275         (arm_sync_lock_test_and_setsi): Likewise.
14276         (arm_sync_lock_test_and_set<mode>): Likewise.
14277         (arm_sync_new_<sync_optab>si): Likewise.
14278         (arm_sync_new_nandsi): Likewise.
14279         (arm_sync_new_<sync_optab><mode>): Likewise.
14280         (arm_sync_new_nand<mode>): Likewise.
14281         (arm_sync_old_<sync_optab>si): Likewise.
14282         (arm_sync_old_nandsi): Likewise.
14283         (arm_sync_old_<sync_optab><mode>): Likewise.
14284         (arm_sync_old_nand<mode>): Likewise.
14285
14286 2010-09-13  Olivier Hainque  <hainque@adacore.com>
14287
14288         * fwprop.c (forward_propagate_and_simplify): Only attach a
14289         REG_EQUAL note to an insn if the destination is a register.
14290         * gcse.c (try_replace_reg): Likewise.
14291
14292 2010-09-13  Richard Guenther  <rguenther@suse.de>
14293
14294         PR tree-optimization/45611
14295         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
14296         (copy_ref_info): Likewise.
14297
14298 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
14299
14300         PR debug/45604
14301         PR debug/45419
14302         PR debug/45408
14303         * tree-pretty-print.c (dump_generic_node): Disregard top-level
14304         types of MEM_REF pointer types to the same type.
14305
14306 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
14307
14308         PR rtl-optimization/41087
14309         * ifcvt.c (noce_get_condition): Don't allow conditions with
14310         side-effects.
14311
14312 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
14313
14314         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
14315         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
14316         * config/frv/frv.c (frv_register_move_cost): Make static. Change
14317         arguments type to reg_class_t. Add mode argument.
14318         (frv_memory_move_cost): New.
14319         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
14320
14321 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
14322
14323         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
14324         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
14325
14326 2010-09-10  Jan Hubicka  <jh@suse.cz>
14327
14328         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
14329
14330 2010-09-10  Richard Guenther  <rguenther@suse.de>
14331
14332         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
14333         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
14334         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
14335         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
14336         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
14337
14338 2010-09-10  Richard Guenther  <rguenther@suse.de>
14339
14340         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
14341         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
14342         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
14343         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
14344
14345 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
14346
14347         PR middle-end/45634
14348         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
14349         of string folding is of integral type.
14350
14351 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
14352
14353         * doc/invoke.texi (-x): Fix typo.
14354
14355 2010-09-10  Richard Guenther  <rguenther@suse.de>
14356
14357         PR debug/44115
14358         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
14359         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
14360         Output DECL_DEBUG_EXPR.
14361         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
14362         Input DECL_DEBUG_EXPR.
14363
14364 2010-09-10  Richard Guenther  <rguenther@suse.de>
14365
14366         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
14367         (build_index_type): Implement in terms of build_range_type.
14368         (build_range_type): Do not allow NULL_TREE type, improve
14369         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
14370         if we didn't hash.
14371         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
14372         create a distinct copy of the type.
14373
14374 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
14375
14376         * configure: Regenerated.
14377         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
14378
14379 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14380
14381         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
14382         * config/arm/cortex-a9-neon.md: New and partially generated.
14383         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
14384
14385 2010-09-10  Richard Guenther  <rguenther@suse.de>
14386
14387         * tree.h (build_index_2_type): Remove.
14388         * tree.c (build_index_2_type): Remove.
14389
14390 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
14391
14392         PR bootstrap/45630
14393         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
14394         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
14395         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
14396
14397 2010-09-10  Martin Jambor  <mjambor@suse.cz>
14398
14399         PR tree-optimization/44972
14400         * tree-sra.c: Include toplev.h.
14401         (build_ref_for_offset): Entirely reimplemented.
14402         (build_ref_for_model): New function.
14403         (build_user_friendly_ref_for_offset): New function.
14404         (analyze_access_subtree): Removed build_ref_for_offset check.
14405         (propagate_subaccesses_across_link): Likewise.
14406         (create_artificial_child_access): Use
14407         build_user_friendly_ref_for_offset.
14408         (propagate_subaccesses_across_link): Likewise.
14409         (ref_expr_for_all_replacements_p): Removed.
14410         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
14411         (sra_modify_expr): Use build_ref_for_model.
14412         (load_assign_lhs_subreplacements): Likewise.
14413         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
14414         checks for return values of build_ref_for_offset.
14415         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
14416         build_ref_for_offset.
14417         * ipa-prop.h: Include gimple.h
14418         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
14419         (ipa_analyze_indirect_call_uses): Update comment.
14420         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
14421         (IPA_PROP_H): Likewise.
14422
14423 2010-09-10  Martin Jambor  <mjambor@suse.cz>
14424
14425         PR tree-optimization/44972
14426         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
14427         calling build_ref_for_offset.
14428
14429 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14430
14431         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
14432         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
14433         * config/arm/arm-tune.md: Regenerate.
14434         * doc/invoke.texi (ARM Options): Document it.
14435
14436 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
14437
14438         * config/i386/i386.c: Include sched-int.h.
14439         (TARGET_SCHED_DISPATCH): Defined.
14440         (TARGET_SCHED_DISPATCH_DO): Defined.
14441         (DISPATCH_WINDOW_SIZE): Defined.
14442         (MAX_DISPATCH_WINDOWS): Defined.
14443         (MAX_INSN): Defined.
14444         (MAX_IMM): Defined.
14445         (MAX_IMM_SIZE): Defined.
14446         (MAX_IMM_32): Defined.
14447         (MAX_IMM_64): Defined.
14448         (MAX_LOAD): Defined.
14449         (MAX_STORE): Defined.
14450         (BIG): Defined.
14451         (dispatch_group): New.
14452         (num_allowable_groups): New.
14453         (group_name): New.
14454         (sched_insn_info_s): New.
14455         (dispatch_windows_s): New.
14456         (imm_info_s): New.
14457         (dispatch_window_list): New.
14458         (dispatch_window_list1): New.
14459         (get_mem_group): New.
14460         (is_cmp): New.
14461         (dispatch_violation): New.
14462         (is_branch): New.
14463         (is_prefetch): New.
14464         (init_window): New.
14465         (allocate_window): New.
14466         (init_dispatch_sched): New.
14467         (is_end_basic_block): New.
14468         (process_end_window): New.
14469         (allocate_next_window): New.
14470         (find_constant_1): New.
14471         (find_constant): New.
14472         (get_num_immediates): New.
14473         (has_immediate): New.
14474         (get_insn_path): New.
14475         (get_insn_group): New.
14476         (count_num_restricted): New.
14477         (fits_dispatch_window): New.
14478         (add_insn_window): New.
14479         (add_to_dispatch_window): New.
14480         (debug_dispatch_window_file): New.
14481         (debug_dispatch_window): New.
14482         (debug_insn_dispatch_info_file): New.
14483         (debug_ready_dispatch): New.
14484         (do_dispatch): New.
14485         (has_dispatch): New.
14486         * config/i386/i386.h (debug_ready_dispatch): Declared.
14487         (debug_dispatch_window): Declared.
14488         * config/i386/i386.opt (mdispatch-scheduler): New flag.
14489         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
14490         (TARGET_SCHED_DISPATCH_DO): New.
14491         * doc/tm.texi: Regererated.
14492         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
14493         ready_remove_first_dispatch
14494         (schedule_block): Call targetm.sched.dispatch and
14495         targetm.sched.dispatch_do.
14496         (sched_init): Call targetm.sched.dispatch and
14497         targetm.sched.dispatch_do.
14498         (ready_remove_first_dispatch): New.
14499         (number_in_ready): New.
14500         (get_ready_element): New.
14501         * hooks.c (hook_bool_rtx_int_false): New.
14502         (hook_void_rtx_int): New.
14503         * hooks.h (hook_bool_rtx_int_false): Declared.
14504         (hook_void_rtx_int): Declared.
14505         * sched-int.h (IS_DISPATCH_ON): Defined.
14506         (IS_CMP): Defined.
14507         (DISPATCH_VIOLATION): Defined.
14508         (FITS_DISPATCH_WINDOW): Defined.
14509         (DISPATCH_INIT): Defined.
14510         (ADD_TO_DISPATCH_WINDOW): Defined.
14511         (get_ready_element): Declared.
14512         (number_in_ready): Declared.
14513         * target.def (dispatch): Defined.
14514         (dispatch_do): Defined.
14515
14516 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
14517
14518         PR middle-end/45312
14519         * reload1.c (merge_assigned_reloads): Remove.
14520         (reload_as_needed): Don't call it.
14521
14522 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
14523
14524         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
14525         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
14526         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
14527
14528 2010-09-09  Matthias Klose  <doko@ubuntu.com>
14529
14530         PR bootstrap/43847
14531         * configure.ac (--enable-plugin): Enhance for cross builds.
14532         * configure: Regenerate.
14533
14534 2010-09-09  Jan Hubicka  <jh@suse.cz>
14535
14536         PR tree-optimization/45598
14537         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
14538         string folding is of integral type.
14539
14540 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
14541
14542         * configure.ac (gnu_indirect_function): New test.
14543         * configure: Rebuilt.
14544         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
14545         * defaults.h (IFUNC_ASM_TYPE): Provide default.
14546
14547         * doc/extend.texi (Function Attributes): Document ifunc.
14548         * varasm.c (do_assemble_alias): Deal with ifuncs too.
14549
14550 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
14551
14552         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
14553         epilogue instruction move.
14554
14555 2010-09-09  Jan Hubicka  <jh@suse.cz>
14556
14557         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
14558         command line to allow more partitions than input files.
14559
14560 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
14561
14562         PR middle-end/44554
14563         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
14564
14565 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
14566
14567         PR middle-end/40386
14568         * ira.c (pseudo_for_reload_consideration_p): Don't use
14569         flag_ira_share_spill_slots.
14570
14571 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14572
14573         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
14574         point zero operands that fit into a single GPR.
14575         (s390_preferred_reload_class): Ensure we only return general-purpose
14576         register classes.
14577         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
14578         floating-point zero operands into GPRs.
14579         ("*mov<mode>_64"): Likewise.
14580         ("mov<mode>"): Likewise using lhi.
14581
14582 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14583
14584         * config/s390/s390.c (s390_symref_operand_p): Return false for
14585         literal pool references.
14586         (s390_check_qrst_address): Update caller.
14587
14588 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
14589
14590         * config/i386/predicates.md (ext_register_operand): Check that
14591         SUBREG_REG is really a register before looking for REGNO.
14592         (reg_not_xmm0_operand): Handle SUBREGs correctly.
14593         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
14594
14595 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
14596
14597         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
14598         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
14599         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
14600         * print-rtl.c (print_rtx): Likewise.
14601         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
14602         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
14603         for ADDR_EXPR with non-addressable object.
14604         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
14605         (struct dw_val_struct): Add v.val_decl_ref.
14606         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
14607         Handle DW_OP_GNU_implicit_pointer.
14608         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
14609         (get_ref_die_offset_label): New function.
14610         (implicit_ptr_descriptor): New function.
14611         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
14612         (loc_descriptor): Likewise.
14613         (gen_variable_die): Put even definitions into decl_die_table.
14614         (resolve_addr_in_expr): Resolve still unresolved
14615         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
14616         return false.
14617         (dwarf2out_finish): Call output_location_lists after outputting
14618         .debug_info and .debug_abbrev instead of before.
14619
14620 2010-09-09  Roland McGrath  <roland@redhat.com>
14621
14622         * dwarf2out.c (DWARF_REF_SIZE): Define.
14623         (size_of_loc_descr): Use it for DW_OP_call_ref.
14624
14625 2010-09-09  Alan Modra  <amodra@gmail.com>
14626
14627         * doc/invoke.text: Reinstate mcmodel=medium.
14628         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
14629         CMODEL_MEDIUM as default.
14630         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
14631         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
14632         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
14633         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
14634
14635 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14636
14637         PR target/45250
14638         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
14639         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
14640         (builtin_longjmp): Likewise.
14641         (allocate_stack): Use hard_frame_pointer_rtx instead of
14642         frame_pointer_rtx.
14643         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
14644         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
14645         (pa_can_eliminate): Likewise.
14646         (TARGET_INTERNAL_ARG_POINTER): Define.
14647         (TARGET_CAN_ELIMINATE): Define.
14648         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
14649         pointer.
14650         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
14651         (pa_internal_arg_pointer, pa_can_eliminate,
14652         pa_initial_elimination_offset): New.
14653         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
14654         (HARD_FRAME_POINTER_REGNUM): Set to register three.
14655         (INITIAL_FRAME_POINTER_OFFSET): Delete.
14656         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
14657         Define.
14658         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
14659         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
14660         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
14661         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
14662         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
14663         new soft frame pointer.
14664         * config/pa/pa64-regs.h: Likewise.
14665
14666 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
14667
14668         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
14669         numerical constant.
14670         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
14671
14672 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
14673
14674         PR debug/45531
14675         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
14676
14677 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
14678
14679         PR debug/45419
14680         PR debug/45408
14681         * tree-pretty-print.c (dump_generic_node): Disregard top-level
14682         qualifiers in otherwise equal MEM_REF pointer types.
14683         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
14684         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
14685
14686 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14687
14688         PR target/44392
14689         * config/arm/arm.md (bswapsi2): Handle condition correctly
14690         for armv6 and optimize_size.
14691
14692 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
14693
14694         PR other/18555
14695         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
14696
14697 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
14698
14699         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
14700         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
14701         ix86_expand_strlen, legitimate_pic_address_disp_p,
14702         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
14703         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
14704         ix86_check_movabs, ix86_secondary_memory_needed): Change function
14705         prototype to bool.
14706         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
14707         return_in_memory_ms_64, ix86_check_movabs,
14708         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
14709         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
14710         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
14711         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
14712         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
14713         ix86_secondary_memory_needed): Change to bool.  Return
14714         "true" and "false" values.
14715         * config/i386/i386.md: Return "true" and "false" values.
14716
14717 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14718
14719         * doc/sourcebuild.texi (Effective-Target Keywords): Document
14720         run_expensive_tests.
14721
14722 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14723
14724         * toplev.c (output_stack_usage): Use lbasename instead of basename.
14725
14726 2010-09-08  Martin Jambor  <mjambor@suse.cz>
14727
14728         PR other/45443
14729         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
14730         at -O3.
14731
14732 2010-09-08  Richard Guenther  <rguenther@suse.de>
14733
14734         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
14735         (visit): Adjust.
14736         (iterative_hash_gimple_type): Likewise.
14737         (gimple_type_hash): Likewise.
14738         (gimple_register_type): Likewise.
14739         (print_gimple_types_stats): Likewise.
14740         (free_gimple_type_tables): Likewise.
14741
14742 2010-09-08  Michael Matz  <matz@suse.de>
14743
14744         PR tree-optimization/43430
14745         * tree-vect-stmts.c (vectorizable_condition): Support multiple
14746         copies for conditional statements if it's not part of a reduction.
14747
14748 2010-09-08  Michael Matz  <matz@suse.de>
14749
14750         PR tree-optimization/33244
14751         * tree-ssa-sink.c (statement_sink_location): Don't sink into
14752         empty loop latches.
14753
14754 2010-09-08  Richard Guenther  <rguenther@suse.de>
14755
14756         PR tree-optimization/45578
14757         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
14758         Be more careful when transfering alignment information to
14759         the new induction variable.
14760         (copy_ref_info): Likewise.
14761
14762 2010-09-08  Richard Guenther  <rguenther@suse.de>
14763
14764         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
14765         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
14766
14767 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
14768
14769         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
14770         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
14771
14772 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
14773
14774         PR doc/45587
14775         * doc/md.texi: Fixed modes on several standard pattern names.
14776
14777 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
14778
14779         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
14780         (ashl<mode>3): ...this.
14781         (loongson_psra<V_suffix>): Rename to...
14782         (ashr<mode>3): ...this.
14783         (loongson_psrl<V_suffix>): Rename to...
14784         (lshr<mode>3): ...this.
14785         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
14786         (CODE_FOR_loongson_psllw): Define.
14787         (CODE_FOR_loongson_psrlh): Define.
14788         (CODE_FOR_loongson_psrlw): Define.
14789         (CODE_FOR_loongson_psrah): Define.
14790         (CODE_FOR_loongson_psraw): Define.
14791
14792 2010-09-07  Richard Henderson  <rth@redhat.com>
14793
14794         * tree-vect-data-refs.c: Include tm_p.h.
14795         * Makefile.in (tree-vect-data-refs.o): Update deps.
14796         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
14797         Move delarations outside #ifdef RTX_CODE.
14798
14799 2010-09-07  Richard Henderson  <rth@redhat.com>
14800
14801         * final.c (rest_of_handle_final): Unconditionally do
14802         output_function_exception_table before assemble_end_function.
14803
14804 2010-09-07  Jan Hubicka  <jh@suse.cz>
14805
14806         * tree-inline.c (tree_inlinable_function_p): Do not test
14807         DECL_REPLACEABLE_P.
14808         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
14809         update_callee_keys, cgraph_decide_inlining): Test function availability.
14810         * cif-code.def (OVERWRITABLE): New code.
14811
14812 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
14813             Jack Howarth  <howarth@bromo.med.uc.edu>
14814
14815         PR target/36502
14816         PR target/42313
14817         PR target/44651
14818         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
14819         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
14820         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
14821         MAX macro.
14822
14823 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
14824
14825         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
14826         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
14827
14828 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
14829
14830         * config.gcc: Don't append t-android for Android targets.
14831
14832         * config/t-android: Removed.
14833
14834 2010-09-07  Richard Henderson  <rth@redhat.com>
14835
14836         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
14837         * doc/tm.texi.in: Add doc marker.
14838         * doc/tm.texi: Rebuild.
14839         * except.c (switch_to_exception_section): Always build.
14840         (output_one_function_exception_table): Move section switch,
14841         personality output, and label output ...
14842         (output_function_exception_table): ... here.  Use the new
14843         personality hook.
14844
14845         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
14846         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
14847         TARGET_ASM_INIT_SECTIONS): New.
14848         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
14849         make static.
14850         (TARGET_ASM_UNWIND_EMIT): Update to match.
14851         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
14852
14853         * config/arm/arm.c (arm_asm_emit_except_personality): New.
14854         (arm_asm_init_sections): New.
14855         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
14856
14857 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14858
14859         * config/arm/arm.md: Remove unused variable.
14860
14861 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
14862
14863         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
14864         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
14865         (m32r_memory_move_cost): New function.
14866
14867 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
14868
14869         * config.gcc: Append t-android for Android targets.
14870
14871         * config/t-android: New.
14872
14873 2010-09-07  Richard Henderson  <rth@redhat.com>
14874
14875         * target.def (unwind_emit_before_insn): New hook.
14876         * doc/tm.texi.in: Add @hook marker for it.
14877         * doc/tm.texi: Rebuild.
14878         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
14879
14880 2010-09-07  Martin Jambor  <mjambor@suse.cz>
14881
14882         PR fortran/43665
14883         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
14884         are any type attributes.
14885
14886 2010-09-07  Jan Hubicka  <jh@suse.cz>
14887
14888         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
14889         array_ref_low_bound in string access folding.
14890
14891 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
14892
14893         PR target/45206
14894         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
14895         eh_return fixup sequence.
14896
14897 2010-09-07  Jan Hubicka  <jh@suse.cz>
14898
14899         * gimple-fold.c (maybe_fold_reference): Verify that operand is
14900         gimple_min_invariant.
14901
14902 2010-09-07  Richard Guenther  <rguenther@suse.de>
14903
14904         PR middle-end/45569
14905         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
14906         nor CONSTRUCTOR can trap.
14907         * tree-complex.c (update_complex_assignment): Update EH info.
14908
14909 2010-09-07  Richard Guenther  <rguenther@suse.de>
14910
14911         PR middle-end/45569
14912         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
14913         * passes.c (execute_function_todo): Do not verify anything if
14914         we saw errors.
14915
14916 2010-09-07  Richard Guenther  <rguenther@suse.de>
14917
14918         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
14919
14920 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
14921
14922         PR target/43137
14923         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
14924         New define_mode_attrs.
14925         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
14926         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
14927         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
14928         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
14929         Remove pool_range attribute.
14930         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
14931         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
14932         pool_range and neg_pool_range attributes.
14933         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
14934         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
14935         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
14936
14937 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
14938
14939         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
14940         check glibc.
14941
14942 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
14943
14944         PR target/22152
14945         * config/i386/mmx.md (*mov<mode>_internal_rex64,
14946         *mov<mode>_internal_avx, *mov<mode>_internal,
14947         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
14948         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
14949
14950 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
14951
14952         * c-typeck.c (do_warn_double_promotion): Remove.
14953         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
14954         Objective-C++ too.
14955
14956 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
14957
14958         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
14959         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
14960         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
14961         argument type to reg_class_t. Change result type to bool.
14962         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
14963
14964 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
14965
14966         PR libobjc/19850
14967         * gthr-posix.h (__gthread_objc_thread_detach): Use
14968         _objc_thread_attribs when detaching a thread.
14969         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
14970
14971 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
14972
14973         PR target/45524
14974         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
14975         * configure: Regenerated.
14976
14977 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14978
14979         * combine.c (try_combine): Set subst_low_luid to i0.
14980
14981 2010-09-06  Richard Guenther  <rguenther@suse.de>
14982
14983         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
14984         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
14985         (build_aligned_type): Declare.
14986         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
14987         (check_aligned_type): New function.
14988         (build_aligned_type): Likewise.
14989         * expr.c (expand_assignment): Handle misaligned stores via
14990         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
14991         (expand_expr_real_1): Likewise.
14992         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
14993         * tree-vect-stmts.c (vectorizable_store): Do not build
14994         MISALIGNED_INDIRECT_REF but initialize alignment information.
14995         (vectorizable_load): Likewise.
14996         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
14997         handling.
14998         * cfgexpand.c (expand_debug_expr): Likewise.
14999         * dwarf2out.c (loc_list_from_tree): Likewise.
15000         * fold-const.c (maybe_lvalue_p): Likewise.
15001         (operand_equal_p): Likewise.
15002         (build_fold_addr_expr_with_type_loc): Likewise.
15003         * gimplify.c (gimplify_addr_expr): Likewise.
15004         (gimplify_expr): Likewise.
15005         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
15006         (verify_gimple_assign_single): Likewise.
15007         * tree-dump.c (dequeue_and_dump): Likewise.
15008         (tree_could_trap_p): Likewise.
15009         * tree-predcom.c (ref_at_iteration): Likewise.
15010         * tree-pretty-print.c (dump_generic_node): Likewise.
15011         (op_code_prio): Likewise.
15012         (op_symbol_code): Likewise.
15013         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
15014         * tree-ssa-loop-im.c (for_each_index): Likewise.
15015         (gen_lsm_tmp_name): Likewise.
15016         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
15017         (find_interesting_uses_address): Likewise.
15018         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
15019         * tree-ssa-operands.c (get_expr_operands): Likewise.
15020         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
15021         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
15022         (ao_ref_init_from_vn_reference): Likewise.
15023         * tree.c (staticp): Likewise.
15024         (build1_stat): Likewise.
15025         (reference_alias_ptr_type): Likewise.
15026         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
15027         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
15028         MISALIGNED_INDIRECT_REF handling.
15029
15030 2010-09-06  Richard Guenther  <rguenther@suse.de>
15031
15032         PR tree-optimization/45534
15033         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
15034         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
15035         on the target.
15036         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
15037         valid on the target.
15038
15039 2010-09-06  Andreas Schwab  <schwab@redhat.com>
15040
15041         * configure.ac: Quote argument of AC_MSG_WARN.
15042         * configure: Regenerate.
15043
15044 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
15045
15046         * sel-sched.c (move_cond_jump): Correct arguments to
15047         maybe_tidy_empty_bb.
15048         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
15049
15050 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
15051
15052         PR rtl-optimization/44919
15053         * sel-sched.c (move_cond_jump): Remove assert, check that
15054         the several blocks case can only happen with mutually exclusive
15055         insns instead.  Rewrite the movement code to support moving through
15056         several basic blocks.
15057
15058 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
15059
15060         * config/i386/i386.md (iptrsize): New mode attribute.
15061         (tp_seg): Ditto.
15062         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
15063         mode iterator.
15064         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
15065         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
15066         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
15067         (stack_tls_protect_set_<mode>): Ditto from
15068         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
15069         of thread base pointer load.
15070         (stack_tls_protect_test_<mode>): Ditto from
15071         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
15072         of thread base pointer load.
15073         (stack_protect_set): Rewrite using indirect functions.
15074         (stack_protect_test): Ditto.
15075         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
15076         (ix86_print_operand): Handle '@'.
15077
15078 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
15079
15080         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
15081         MINUS_EXPR.
15082
15083 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
15084
15085         * doc/invoke.texi: Document -Wdouble-promotion.
15086         * c-typeck.c (convert_arguments): Check for implicit conversions
15087         from float to double.
15088         (do_warn_double_promotion): New function.
15089         (build_conditional_expr): Use it.
15090         (build_binary_op): Likewise.
15091
15092 2010-09-05  Richard Guenther  <rguenther@suse.de>
15093
15094         PR tree-optimization/45535
15095         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
15096         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
15097         dereferencing it.
15098         (indirect_refs_may_alias_p): Likewise.
15099
15100 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
15101
15102         * config/sh/sh.c (sh_option_override): Make static.
15103         Adjust comments.  Declare.
15104         (sh_function_value_regno_p): Likewise.
15105         (sh_register_move_cost): Modify the arguments, make static.
15106         Adjust comments.  Declare.
15107         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
15108         TARGET_FUNCTION_VALUE_REGNO_P): Define.
15109         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
15110         REGISTER_MOVE_COST): Delete.
15111         * config/sh/sh-protos.h (sh_override_options): Delete.
15112         (sh_register_move_cost): Delete.
15113         (sh_function_value_regno_p): Delete.
15114
15115 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
15116
15117         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
15118         m32r_function_value_regno_p): New functions.
15119         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
15120         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
15121         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
15122         FUNCTION_VALUE_REGNO_P): Remove.
15123
15124 2010-09-04  Jan Hubicka  <jh@suse.cz>
15125
15126         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
15127         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
15128         fold_read_from_constant_string.
15129
15130         * gimple.h (canonicalize_constructor_val): Declare.
15131         * gimple-fold.c (canonicalize_constructor_val): New function.
15132         (get_symbol_constant_value):Use it.
15133         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
15134
15135 2010-09-04  Jan Hubicka  <jh@suse.cz>
15136
15137         * tree-switch-conversion.c (build_one_array): Set constructor to be
15138         static.
15139         * varpool.c (varpool_finalize_decl): Compute const_value_known.
15140
15141 2010-09-04  Richard Guenther  <rguenther@suse.de>
15142
15143         PR bootstrap/45519
15144         * tree-flow.h (force_gimple_operand_1): Declare.
15145         (force_gimple_operand_gsi_1): Likewise.
15146         * gimplify.c (force_gimple_operand_1): New worker taking a
15147         gimple predicate for ...
15148         (force_gimple_operand): ... which now wraps it.
15149         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
15150         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
15151         last change.
15152         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
15153         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
15154         (create_mem_ref): Likewise.
15155
15156 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
15157
15158         * config/i386/predicates.md (sse_reg_operand): New predicate.
15159         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
15160         predicate for operand 1.
15161         (XFmode push splitter): Use fp_register_operand predicate
15162         for operand 1.
15163         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
15164         (SF-DF float_extend push splitter): Add reload_completed insn
15165         predicate.
15166         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
15167         MODEF mode macro.  Add reload_completed insn predicate.
15168
15169 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
15170
15171         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
15172         (struct df_extract_ref): Remove.
15173         (union df_ref_d): Remove extract_ref member.
15174         (df_ref_create): Remove last three arguments.
15175         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
15176         * df-scan.c (df_ref_record): Remove last three arguments, do not
15177         pass them to df_ref_create_structure.
15178         (df_uses_record): Remove first and last three arguments.  Replace
15179         first argument with DF_REF_REGULAR, adjust calls to remove the
15180         width, offset and mode.  Always call recursively on the second
15181         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
15182         (df_ref_create_structure): Remove first argument.
15183         (struct df_scan_problem_data): Remove ref_extract_pool.
15184         (df_scan_free_internal): Do not free it.
15185         (df_scan_alloc): Do not allocate it.
15186         (df_ref_create): Remove last three arguments, do not pass them to
15187         df_ref_create_structure.
15188         (df_free_ref): Remove DF_REF_EXTRACT case.
15189         (df_notes_rescan): Adjust call to df_uses_record.
15190         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
15191         Remove DF_REF_EXTRACT case.
15192         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
15193         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
15194         and SUBREG definitions.
15195         (df_get_conditional_uses): Remove references to width/offset/mode,
15196         adjust call to df_ref_create_structure.
15197         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
15198         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
15199         calls to df_uses_record and df_ref_record.
15200         * fwprop.c (update_df): Remove references to width/offset/mode,
15201         adjust call to df_ref_create.
15202
15203 2010-09-03  Jan Hubicka  <jh@suse.cz>
15204
15205         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
15206         (build_cdtor_fns): Update use of build_cdtor.
15207
15208 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
15209
15210         * doc/options.texi (SeparateAlias): Document.
15211         * opt-functions.awk (switch_flags): Handle SeparateAlias.
15212         * opth-gen.awk: Generate enumeration names for options marked
15213         SeparateAlias, but not for those marked Ignore.
15214         * opts-common.c (generate_canonical_option): Don't output separate
15215         argument for options marked CL_SEPARATE_ALIAS.
15216         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
15217         * opts.h (CL_SEPARATE_ALIAS): New.
15218         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
15219         CL_COMMON): Adjust definitions.
15220         * config/i386/darwin.opt, config/mips/sde.opt: New.
15221         * common.opt (fdump-final-insns): New.
15222         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
15223         i386/darwin.opt.
15224         (mips*-sde-elf*): Add mips/sde.opt.
15225         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
15226         -mno-data-in-code and -mcode-xonly here.
15227         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
15228         * gcc.c (option_map): Add "j" to --dump entry.
15229         (translate_options): Don't translate -d to -foutput-class-dir= here.
15230
15231 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
15232
15233         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
15234         DR_IS_WRITE.
15235         (compute_all_dependences): Same.
15236         (create_rdg_edge_for_ddr): Same.
15237         * tree-data-ref.h (DR_IS_WRITE): New.
15238         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
15239         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
15240         (write_memrefs_written_at_least_once): Same.
15241         * tree-predcom.c (suitable_component_p): Same.
15242         (determine_roots_comp): Same.
15243         (execute_load_motion): Same.
15244         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
15245         (vect_enhance_data_refs_alignment): Same.
15246         (vect_analyze_group_access): Same.
15247
15248 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
15249
15250         PR testsuite/42843
15251         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
15252         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
15253
15254 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
15255
15256         * dwarf2out.c (file scope): Remove #if0'd code.
15257         (gen_subprogram_die): Same.
15258
15259 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
15260
15261         PR middle-end/45484
15262         * dwarf2out.c (flush_queued_reg_saves): Rename to...
15263         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
15264         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
15265         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
15266         * config/i386/i386.c (output_set_got): Call it.
15267
15268 2010-09-03  Michael Matz  <matz@suse.de>
15269
15270         PR middle-end/45415
15271         * tree-sra.c (sra_modify_assign): If we modify the statement,
15272         say so.
15273
15274         * tree-ssa.c (verify_ssa): Check number of operands and links
15275         per statement to agree.
15276
15277 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
15278             Iain Sandoe  <iains@gcc.gnu.org>
15279
15280         PR target/45476
15281         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
15282         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
15283         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
15284
15285 2010-09-03  Richard Guenther  <rguenther@suse.de>
15286
15287         * lto-streamer-out.c (output_function): Output function
15288         start and end loci.
15289         * lto-streamer-in.c (input_function): Input function start
15290         and end loci.
15291
15292 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15293
15294         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
15295         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
15296         * configure: Regenerate.
15297         * aclocal.m4: Regenerate.
15298
15299 2010-09-03  Jan Hubicka  <jh@suse.cz>
15300
15301         PR lto/44812
15302         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
15303         on functions/variables in other partition.
15304
15305 2010-09-03  Jan Hubicka  <jh@suse.cz>
15306
15307         * cgraph.h (struct varpool_node): Add const_value_known.
15308         (varpool_decide_const_value_known): Declare.
15309         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
15310         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
15311         (input_varpool_node): Restore const_value_known.
15312         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
15313         initializer folding.
15314         * ipa.c (ipa_discover_readonly_nonaddressable_var,
15315         function_and_variable_visibility): Compute const_value_known.
15316         * gimple-fold.c (get_symbol_constant_value): Use varpool for
15317         initializer folding.
15318         * varpool.c (varpool_decide_const_value_known): New function.
15319
15320 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
15321
15322         * config/i386/i386.md: Remove empty preparation statements
15323         from splitters.
15324
15325 2010-09-03  Jan Hubicka  <jh@suse.cz>
15326
15327         * passes.c (rest_of_decl_compilation): Do not add local vars into
15328         varpool.
15329         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
15330         static or extern vars are in varpool.
15331         (varpool_finalize_decl): Sanity check that only static vars are
15332         finalized.
15333
15334 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
15335
15336         PR debug/45500
15337         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
15338         not just generic vectors with BLKmode.
15339
15340 2010-09-03  Richard Guenther  <rguenther@suse.de>
15341
15342         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
15343         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
15344         * tree.h (TMR_SYMBOL): Remove.
15345         (TMR_BASE, TMR_OFFSET): Adjust.
15346         (TMR_INDEX2): New.
15347         * alias.c (ao_ref_from_mem): Use TMR_BASE.
15348         * builtins.c (get_object_alignment): Merge TMR_BASE and
15349         TMR_SYMBOL handling.
15350         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
15351         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
15352         handling.  Also allow TARGET_MEM_REF as base address.
15353         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
15354         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
15355         base.  Gimplify TMR_INDEX2.
15356         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
15357         * tree-dfa.c (get_ref_base_and_extent): Likewise.
15358         (get_addr_base_and_unit_offset): Likewise.
15359         * tree-eh.c (tree_could_trap_p): Likewise.
15360         * tree-pretty-print.c (dump_generic_node): Likewise.
15361         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
15362         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
15363         base to index2.
15364         (get_address_description): Reconstruct addres description
15365         from merged TMR_BASE and TMR_INDEX2.
15366         (maybe_fold_tmr): Fold propagated addresses.
15367         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
15368         MEM_REF and TARGET_MEM_REF paths.
15369         (indirect_refs_may_alias_p): Likewise.
15370         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
15371         instead of TMR_SYMBOL.
15372         * tree-ssa-operands.c (get_tmr_operands): Simplify.
15373         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
15374         according to changes ...
15375         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
15376         Split TARGET_MEM_REF into two fields plus the base.
15377         * tree.c (mem_ref_offset): Simplify.
15378         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
15379         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
15380         Strip NOPs when folding MEM_REF addresses.
15381         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
15382         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
15383         (fold_gimple_assign): ... not here.
15384
15385 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
15386
15387         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
15388         * config/mips/mips.c (mips_shift_truncation_mask): New function.
15389         (TARGET_SHIFT_TRUNCATION_MASK): Define.
15390
15391 2010-09-02  Richard Henderson  <rth@redhat.com>
15392
15393         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
15394         instead of readelf in the test.
15395         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
15396         in the .debug_frame section for coff targets.
15397         * configure: Rebuild.
15398
15399 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
15400
15401         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
15402         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
15403         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
15404         (m32c_class_likely_spilled_p): Make static. Change argument type to
15405         reg_class_t. Change result type to bool.
15406
15407 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
15408
15409         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
15410         to convert (double)(long) into a single FRIZ instruction or not
15411         when -ffast-math is used.
15412
15413         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
15414         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
15415         or FRIZ instruction if -ffast-math.
15416         * config/rs6000/rs6000.md (friz): Ditto.
15417
15418         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
15419
15420 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
15421
15422         * opth-gen.awk (quote, comma): Remove unused variables.
15423
15424 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
15425
15426         * arm.c (arm_override_options): Correct fall-back code to use
15427         SUBTARGET_CPU_DEFAULT.
15428
15429 2010-09-02  Julian Brown  <julian@codesourcery.com>
15430
15431         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
15432         unspecs.
15433         (vcond<mode>, vcondu<mode>): New expanders.
15434         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
15435         comparisons with zero.
15436         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
15437         * config/arm/constraints.md (Dz): New constraint.
15438
15439 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
15440
15441         * target.def (class_likely_spilled_p): New hook.
15442         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
15443         * doc/tm.texi: Regenerate.
15444         * targhooks.c (default_class_likely_spilled_p): New function.
15445         * targhooks.h (default_class_likely_spilled_p): Declare.
15446         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
15447         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
15448         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
15449         Use fixed_reg_set instead of fixed_regs.
15450         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
15451         * calls.c (avoid_likely_spilled_reg): Ditto.
15452         * ira-conflicts.c (ira_build_conflicts): Ditto.
15453         * ira.c (update_equiv_regs): Ditto.
15454         * mode-switching.c (create_pre_exit): Ditto.
15455         * regmove.c (find_matches): Ditto.
15456         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
15457         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
15458         (small_register_class_p): New inline function.
15459         (push_secondary_reload, find_reusable_reload, find_reloads): Use
15460         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
15461
15462         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
15463         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
15464         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
15465
15466 2010-09-02  Richard Guenther  <rguenther@suse.de>
15467
15468         PR tree-optimization/44937
15469         PR tree-optimization/45412
15470         * ipa-split.c (split_function): Properly remove PHI nodes.
15471
15472 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
15473
15474         * opts.h (struct cl_option): Add warn_message field.
15475         (struct cl_decoded_option): Add warn_message field.
15476         * doc/options.texi (Ignore, Warn): Document.
15477         * opt-functions.awk (needs_state_p): Don't consider aliases or
15478         ignored options to need state saved.
15479         * optc-gen.awk: Handle Warn and Ignore.
15480         * opth-gen.awk: Output OPT_SPECIAL_ignore.
15481         * opts-common.c (decode_cmdline_option): Set warn_message field.
15482         Handle ignored options.
15483         (decode_cmdline_options_to_array, generate_option,
15484         generate_option_input_file): Set warn_message field.
15485         (read_cmdline_option): Generate warnings from warn_message field.
15486         Handle ignored options.
15487         * common.opt (Wunreachable-code, fargument-alias,
15488         fargument-noalias, fargument-noalias-global,
15489         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
15490         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
15491         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
15492         ftree-salias): Mark Ignore.
15493         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
15494         -mintel-syntax and -mno-intel-syntax here.
15495         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
15496         using Warn.
15497         * opts.c (common_handle_option): Don't handle options marked as
15498         ignored.
15499         (enable_warning_as_error): Handle ignored options.
15500
15501 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
15502
15503         PR driver/44076
15504         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
15505         alias_target fields.
15506         * opt-functions.awk (opt_sanitized_name): Don't handle
15507         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
15508         * optc-gen.awk: Generate alias fields.
15509         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
15510         Don't generate such constants for aliases.
15511         * opts-common.c (generate_canonical_option): New.
15512         (decode_cmdline_option): Handle aliases.  Use
15513         generate_canonical_option for known options instead of copying the
15514         input option text.
15515         * doc/options.texi (Alias): Document.
15516         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
15517         fstack-check, specs): Mark as aliases.
15518         * gcc.c (driver_handle_option): Canonicalize -L options to joined
15519         arguments.
15520         (driver_handle_option): Don't handle OPT_specs.
15521         * opts.c (common_handle_option): Don't handle options marked as
15522         aliases.
15523         (enable_warning_as_error): Handle aliases.
15524         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
15525         OPT_Wlarger_than_eq.
15526         * tree-optimize.c (tree_rest_of_compilation): Use
15527         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
15528
15529 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
15530
15531         * config/i386/i386.md (nonmemory_operand): New mode attribute.
15532         (push memory peephole2): Macroize peepholes using SWI mode iterator.
15533         (move immediate to memory peephole2): Macroize peepholes using
15534         SWI124 mode iterator.
15535         (non-pairable NOT peephole2): Macroize peepholes using SWI124
15536         mode iterator.
15537         (simple lea add peephole2): Macroize peepholes using SWI48
15538         mode iterator.
15539         (simple lea mult peephole2): Ditto.
15540         (imul by 3,5,9 to lea peephole2): Ditto.
15541         (mov $-1, reg peephole2): Macroize peepholes using SWI248
15542         mode iterator.
15543         (imul $32bit_imm,mem,reg peephole2): Ditto.
15544         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
15545
15546 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
15547
15548         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
15549
15550 2010-09-02  Olivier Hainque  <hainque@adacore.com>
15551
15552         PR middle-end/44763
15553         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
15554         (allocno_priority_compare_func): Use it instead of a straight
15555         difference computation over priorities.
15556
15557 2010-09-02  Andi Kleen  <ak@linux.intel.com>
15558
15559         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
15560
15561 2010-09-02  Ira Rosen  <irar@il.ibm.com>
15562
15563         * tree-vectorizer.h (get_later_stmt): New function.
15564         (vect_analyze_data_ref_dependences): Add argument.
15565         * tree-vect-loop.c (vect_analyze_loop): Update call to
15566         vect_analyze_data_ref_dependences.
15567         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
15568         New function.
15569         (vect_analyze_data_ref_dependence): Add argument for basic block
15570         dependencies. Check dependencies in basic block vectorization.
15571         (vect_analyze_data_ref_dependences): Add argument and update call to
15572         vect_analyze_data_ref_dependences.
15573         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
15574         (vect_bb_vectorizable_with_dependencies): New.
15575         (vect_slp_analyze_bb): Check dependencies in basic block.
15576         (vect_schedule_slp_instance): Insert stores before the last store in
15577         SLP instance.
15578
15579 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
15580
15581         PR target/45476
15582         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
15583         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
15584
15585 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
15586
15587         PR middle-end/45458
15588         * bb-reorder.c (add_labels_and_missing_jumps): Treat
15589         bbs ending with throwing insns like blocks ending with a call.
15590         (fix_up_fall_thru_edges): Likewise.
15591
15592 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
15593
15594         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
15595         (m32c_function_arg_advance): Delete.
15596         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
15597         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
15598         comments.  Take a const_tree and a bool.  Declare.
15599         (m32c_function_arg_advance): Likewise.
15600         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15601
15602 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
15603
15604         PR target/45476
15605         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
15606         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
15607         * config/i386/mingw32.h: ... here.
15608
15609 2010-09-01  Andi Kleen  <ak@linux.intel.com>
15610
15611         PR lto/45475
15612         * lto-streamer-in.c (lto_input_ts_target_option): Add.
15613         (lto_input_tree_pointers): Call lto_input_ts_target_option.
15614         * lto-streamer-out (lto_output_ts_target_option): Add.
15615         (lto_output_tree_pointers): Call lto_output_ts_target_option.
15616
15617 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
15618
15619         PR/target 45452
15620         * config/i386/cygwin.h: Change order of specified import libraries.
15621         * config/i386/mingw32.h: Likewise.
15622         * config/i386/t-cygwin: Likewise.
15623         * config/i386/t-mingw32: Likewise.
15624         * config/i386/t-mingw-w32: Likewise.
15625         * config/i386/t-mingw-w64: Likewise.
15626
15627 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15628
15629         * config/arm/neon-schedgen.ml (core): New type.
15630         (allCores): List of supported cores.
15631         (availability_table): Add supported cores.
15632         (collate_bypasses): Accept core as a parameter.
15633         (worst_case_latencies_and_bypasses): Accept core as a parameter.
15634         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
15635         and coreStr to get tune attribute and prefix for functional units.
15636         (emit_bypasses): Accept core name and use it.
15637         (calculate_per_core_availability_table): New.
15638         (filter_core): New.
15639         (calculate_core_availability_table): New.
15640         (main): Use calculate_core_availablity_table.
15641         * config/arm/cortex-a8-neon.md: Update copyright year.
15642         Regenerated from ml file and merged in.
15643         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
15644         cortex_a8_neon_mrc.
15645
15646 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
15647
15648         * Makefile.in (tree-switch-conversion.o): Update dependencies.
15649
15650 2010-09-01  Richard Guenther  <rguenther@suse.de>
15651
15652         * alias.c (ao_ref_from_mem): Adjust.
15653         * builtins.c (get_object_alignment): Likewise.
15654         * cfgexpand.c (expand_debug_expr): Likewise.
15655         * gimple.c (get_base_address): Likewise.
15656         * tree-dfa.c (get_ref_base_and_extent): Likewise.
15657         (get_addr_base_and_unit_offset): Likewise.  Fix for
15658         both TMR_SYMBOL and TMR_BASE being set.
15659         * tree-eh.c (tree_could_trap_p): Likewise.
15660         * gimplify.c (gimplify_expr): Do not attempt to gimplify
15661         TMR_SYMBOL.  Always gimplify TMR_BASE.
15662         * tree-cfg.c (verify_types_in_gimple_reference): Verify
15663         TMR_BASE if there is a TMR_SYMBOL.
15664         * tree-pretty-print.c (dump_generic_node): Adjust.
15665         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
15666         (tree_mem_ref_addr): Likewise.
15667         (create_mem_ref_raw): Likewise.
15668         (move_fixed_address_to_symbol): Likewise.
15669         (create_mem_ref): Likewise.
15670         (dump_mem_address): Likewise.
15671         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
15672         Fix for both TMR_SYMBOL and TMR_BASE being set.
15673         (indirect_refs_may_alias_p): Likewise.
15674         * tree-ssa-operands.c (get_tmr_operands): Adjust.
15675         * tree.def (TARGET_MEM_REF): Adjust documentation.
15676
15677 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
15678
15679         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
15680         Rename from X86_TUNE_ADD_ESP_4.
15681         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
15682         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
15683         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
15684         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
15685         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
15686         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
15687         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
15688         * config/i386/i386.c (initial_ix86_tune_features)
15689         <X86_TUNE_SINGLE_POP>: Invert members.
15690         <X86_TUNE_DOUBLE_POP>: Ditto.
15691         <X86_TUNE_SINGLE_PUSH>: Ditto.
15692         <X86_TUNE_DOUBLE_PUSH>: Ditto.
15693         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
15694         No longer exported.
15695         (push peephole2 patterns): Macroize peepholes using P mode iterator.
15696         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
15697         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
15698         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
15699
15700 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
15701
15702         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
15703         a volatile LHS if the constructor has only one element.
15704
15705 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
15706
15707         PR bootstrap/45321
15708         * tree.c (stdarg_p): Make fntype parameter const.
15709         * tree.h (stdarg_p): Likewise.
15710         (function_args_iterator): Remove unused fntype field.
15711         (function_args_iter_init): Do not initialize fntype
15712         field.  Make fntype parameter const.
15713
15714 2010-09-01  Richard Guenther  <rguenther@suse.de>
15715
15716         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
15717         estimate.
15718         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
15719         (execute_vrp): Compute number of iteration estimates.
15720         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
15721         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
15722         * tree-data-ref.c (estimated_loop_iterations): Adjust.
15723         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
15724         Infer loop bounds from undefined behavior based on a new parameter.
15725         (estimate_numbers_of_iterations): Likewise.
15726         (scev_probably_wraps_p): Adjust.
15727         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
15728
15729 2010-09-01  Nick Clifton  <nickc@redhat.com>
15730
15731         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
15732         where appropriate.
15733         (xstormy16_legitimate_address_p): Use true and false instead of 1
15734         and 0.
15735         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
15736         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
15737         magic constant 2.
15738         (xstormy16_expand_call): Fix comment at start of function.
15739
15740 2010-09-01  Nick Clifton  <nickc@redhat.com>
15741
15742         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
15743         when pushing accumulator register.
15744         (rx_get_stack_layout): Always save call clobbered registers inside
15745         interrupt handlers.
15746         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
15747
15748 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
15749
15750         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
15751         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
15752
15753         * libgcc-std.ver (GCC_4.6.0): Define version.
15754
15755 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
15756
15757         * tree-nested.c (convert_all_function_calls): Iterate until after the
15758         sum of static chains in the nest doesn't change.
15759
15760 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
15761
15762         * config/m32c/m32c.c (classes_intersect): Remove.
15763         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
15764         reg_classes_intersect_p instead of classes_intersect.
15765         (class_can_hold_mode): Change arguments type from enum reg_class to
15766         reg_class_t.  Use reg_class_contents instead of class_contents.
15767         (m32c_register_move_cost): Make static. Change arguments type from
15768         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
15769         classes_intersect. Use reg_class_contents instead of class_contents.
15770         (m32c_memory_move_cost): Make static. Change arguments type from
15771         enum reg_class to reg_class_t.
15772         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
15773         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
15774         * config/m32c/m32c-protos.h (m32c_register_move_cost,
15775         m32c_memory_move_cost): Remove.
15776
15777 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
15778
15779         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
15780         (arm_function_arg): Delete.
15781         (arm_needs_doubleword_align): Take a const_tree.
15782         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
15783         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
15784         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
15785         (arm_function_arg): Make static.  Take a const_tree and a bool.
15786         (arm_function_arg_advance): Likewise.
15787         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15788
15789 2010-08-31  Andi Kleen  <ak@linux.intel.com>
15790
15791         * common.opt (fwhopr=): Update for -fwhopr=jobserver
15792         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
15793         * lto-wrapper.c (run_gcc): Add jobserver mode.
15794         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
15795         argument.
15796
15797 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
15798
15799         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
15800         (popsi1): Ditto.
15801         (*popdi1_epilogue): Ditto.
15802         (*popsi1_epilogue): Ditto.
15803         (popsi, popdi peephole2 patterns): Update peepholes for changed
15804         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
15805
15806         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
15807         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
15808
15809         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
15810         (override_options): Do not initialize removed ix86_gen_pop1.
15811         (gen_pop): New static function.
15812         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
15813         (release_scratch_register_on_entry): Ditto.
15814         (ix86_restore_reg_using_pop): Ditto.
15815         (ix86_expand_epilogue): Ditto.
15816
15817 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
15818
15819         PR middle-end/45461
15820         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
15821
15822 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
15823
15824         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
15825         semicolons.
15826
15827 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
15828
15829         * doc/extend.texi: Fix documentation of the return value of
15830         __builtin_choose_expr.
15831
15832 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
15833
15834         * config/v850/v850-protos.h (function_arg): Delete.
15835         * config/v850/v850.h (FUNCTION_ARG): Delete.
15836         (FUNCTION_ARG_ADVANCE): Move code to...
15837         * config/v850/v850.c (v850_function_arg_advance): ...here.
15838         (v850_function_arg): Make static.  Take a const_tree and a bool.
15839         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15840
15841 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
15842
15843         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
15844         these...
15845         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
15846         ...and these...
15847         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
15848         ..to here..
15849         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
15850         ...and here.
15851         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15852
15853 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
15854
15855         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
15856         Delete.
15857         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
15858         * config/rx/rx.c (rx_function_arg_size): Make static.
15859         (rx_function_arg): Likewise.
15860         (rx_function_arg_advance): New function.
15861         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15862
15863 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
15864
15865         * config/arm/arm.c (arm_override_options): Remove superfluous test.
15866         Fix indentation.
15867
15868 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
15869
15870         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
15871         (dwarf2out_decl) <CONST_DECL>: Likewise.
15872
15873 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
15874
15875         Stack usage support
15876         * common.opt (-fstack-usage): New option.
15877         * doc/invoke.texi (Debugging options): Document it.
15878         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
15879         allocate_dynamic_stack_space.
15880         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
15881         and propagate it to allocate_dynamic_stack_space.
15882         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
15883         * calls.c (initialize_argument_information): Pass TRUE as 4th
15884         argument to allocate_dynamic_stack_space.
15885         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
15886         to 1 when pushing a variable-sized argument onto the stack.  Pass
15887         TRUE as 4th argument to allocate_dynamic_stack_space.
15888         Update current_function_pushed_stack_size.
15889         (emit_library_call_value_1): Likewise.
15890         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
15891         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
15892         attempt to find an upper bound.  Remove redundant code for the
15893         SETJMP_VIA_SAVE_AREA case.
15894         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
15895         * function.h (struct stack_usage): New structure.
15896         (current_function_static_stack_size): New macro.
15897         (current_function_dynamic_stack_size): Likewise.
15898         (current_function_pushed_stack_size): Likewise.
15899         (current_function_dynamic_alloc_count): Likewise.
15900         (current_function_has_unbounded_dynamic_stack_size): Likewise.
15901         (current_function_allocates_dynamic_stack_space): Likewise.
15902         (struct function): Add new field 'su'.
15903         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
15904         add the value of the dynamic offset to the dynamic stack usage.
15905         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
15906         for variable-sized objects.
15907         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
15908         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
15909         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
15910         BUILT_IN_ALLOCA for variable-sized objects.
15911         * output.h (output_stack_usage): Declare.
15912         * toplev.c (stack_usage_file): New file pointer.
15913         (output_stack_usage): New function.
15914         (open_auxiliary_file): Likewise.
15915         (lang_dependent_init): Open file if flag_stack_usage is set.
15916         (finalize): Close file if stack_usage_file is not null.
15917         * tree.h (ALLOCA_FOR_VAR_P): New macro.
15918         * config/alpha/alpha.c (compute_frame_size): New function.
15919         (alpha_expand_prologue): Use it.
15920         (alpha_start_function): Likewise.
15921         (alpha_expand_epilogue): Likewise.  Set stack usage info.
15922         * config/i386/i386.c (ix86_expand_prologue): Likewise.
15923         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
15924         * config/mips/mips.c (mips_expand_prologue): Likewise.
15925         * config/pa/pa.c (hppa_expand_prologue): Likewise.
15926         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
15927         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
15928
15929 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
15930
15931         PR tree-optimization/45427
15932         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
15933         Handle the case that the exit is never taken correctly.
15934         (number_of_iterations_ne): Pass exit_must_be_taken to
15935         number_of_iterations_ne_max.
15936
15937 2010-08-30  Catherine Moore  <clm@codesourcery.com>
15938
15939         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
15940         Infer -mdspr2 for the the 74K.
15941
15942 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
15943
15944         PR debug/45419
15945         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
15946
15947         PR middle-end/45423
15948         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
15949         and TRUTH_{AND,OR,XOR}_EXPR.
15950         * c-parser.c (c_parser_omp_atomic): Handle boolean
15951         {PRE,POST}_{INC,DEC}REMENT.
15952
15953 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
15954
15955         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
15956         (function_arg): Delete.
15957         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
15958         (FUNCTION_INCOMING_ARG): Delete.
15959         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
15960         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
15961         and a bool.
15962         (function_arg): Rename to...
15963         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
15964         a bool.
15965         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
15966         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15967         (TARGET_FUNCTION_INCOMING_ARG): Define.
15968
15969 2010-08-30  Richard Guenther  <rguenther@suse.de>
15970
15971         PR tree-optimization/21602
15972         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
15973         using points-to information.
15974
15975 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
15976
15977         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
15978
15979 2010-08-30  Richard Guenther  <rguenther@suse.de>
15980
15981         PR tree-optimization/45449
15982         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
15983         variables.
15984
15985 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
15986
15987         * opts.h (CL_ERR_NEGATIVE): Define.
15988         * opts.c (unknown_option_callback): Don't postpone warnings for
15989         options marked with CL_ERR_NEGATIVE.
15990         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
15991         for negative versions of CL_REJECT_NEGATIVE options.
15992
15993 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
15994
15995         * config/i386/i386.md (zero_extendsidi2_1): Rename from
15996         zero_extendsidi2_32.
15997         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
15998         using SWI12 mode iterator.
15999         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
16000         to define_insn_and_split pattern.
16001         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
16002         using SWI24 mode iterator.
16003         (*zero_extendqi<mode>2_and): Macroize insn from
16004         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
16005         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
16006         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
16007         SWI24 mode iterator.
16008         (*zero_extendqi<mode>2_movzbl): Ditto from
16009         *zero_extendqi{hi,si}2_movzbl.
16010         (extendsidi2_1): Rename from extendsidi2_32.
16011         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
16012         SWI12 mode iterator.
16013
16014 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
16015
16016         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
16017         general purpose registers.
16018         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
16019         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
16020         with general purpose registers and memory operands.  Add associated
16021         CCImode post-reload splitter.
16022         * config/ia64/div.md: Change BImode to CCImode throughout.
16023
16024 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
16025
16026         * config/ia64/ia64.md (cstorebi4): Fix thinko.
16027
16028 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
16029
16030         * config/picochip/picochip.c (reorder_var_tracking_notes): This
16031         function was dropping debug insns which caused PR45299.
16032
16033 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
16034
16035         * config/i386/sse.md (extsuffix): New code attribute.
16036         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
16037         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
16038         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
16039         and sse4_1_zero_extendv4qiv4si2.
16040         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
16041         and sse4_1_zero_extendv2qiv2di2.
16042         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
16043         and sse4_1_zero_extendv4hiv4si2.
16044         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
16045         and sse4_1_zero_extendv2hiv2di2.
16046         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
16047         and sse4_1_zero_extendv2siv2di2
16048
16049         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
16050         using any_extend code iterator.
16051         (*avx_<s>mulv8hi3_highpart): Macroize insn from
16052         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
16053         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
16054
16055         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
16056         gen_sse4_1_sign_extend* functions.
16057         (struct builtin_description bdesc_args): Ditto.
16058
16059 2010-08-27  Xinliang David Li  <davidxl@google.com>
16060
16061         PR/45422
16062         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
16063         (iv_ca_set_no_cp): Update used inv expr count.
16064         (iv_ca_set_cp): Ditto.
16065         (iv_ca_new): Initialize new member.
16066         (iv_ca_free): Free memory.
16067
16068 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
16069
16070         * config/sh/sh-protos.h (sh_function_arg): Delete.
16071         (sh_function_arg_advance): Delete.
16072         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
16073         (PASS_IN_REG_P): Eliminate cast.
16074         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
16075         const_tree and a bool.
16076         (sh_function_arg): Likewise.
16077         (sh_output_mi_thunk): Call sh_function_arg_advance) and
16078         sh_function_arg.
16079         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
16080
16081 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
16082             Kaz Kojima  <kkojima@gcc.gnu.org>
16083
16084         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
16085         when possible.
16086         (sh_expand_epilogue): Likewise.
16087         * config/sh/sh.md (movml_push_banked): New insn.
16088         (movml_pop_banked): Likewise.
16089
16090 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
16091
16092         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
16093         gen_regexp_oneof, gen_regexp_sequence): Use the string found
16094         in vector element 0 rather than the original string when there's
16095         only one element.
16096         (gen_regexp): Remove extra semicolon.
16097
16098         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
16099         thumb2_movsf_vfp): Set attribute "insn".
16100         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
16101         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
16102         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
16103         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
16104         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
16105         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
16106         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
16107         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
16108         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
16109         if_not_arith, if_arith_not, cond_move_not): Likewise.
16110
16111 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
16112
16113         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
16114         New declaration.
16115         (rs6000_allocate_stack_temp): Ditto.
16116         (rs6000_expand_convert_si_to_sfdf): Ditto.
16117
16118         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
16119         line.  Update the options set if power6 or power7 server/embedded
16120         type options are used.  If we give a warning for no vsx under
16121         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
16122         (rs6000_allocate_stack_temp): New function to allocate a stack
16123         tempoary and adjust the address so it meets either REG+OFFSET or
16124         REG+REG addressing requirements.
16125         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
16126         that they can be used with the LFIWAX/LFIWZX instrucitons.
16127         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
16128         converting signed/unsigned SImode to either SFmode/DFmode.
16129
16130         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
16131         whether certain instructions can be generated.
16132         (TARGET_FCTIDZ): Ditto.
16133         (TARGET_STFIWX): Ditto.
16134         (TARGET_LFIWAX): Ditto.
16135         (TARGET_LFIWZX): Ditto.
16136         (TARGET_FCFIDS): Ditto.
16137         (TARGET_FCFIDU): Ditto.
16138         (TARGET_FCFIDUS): Ditto.
16139         (TARGET_FCTIDUZ): Ditto.
16140         (TARGET_FCTIWUZ): Ditto.
16141
16142         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
16143         (UNSPEC_FCTID): Ditto.
16144         (UNSPEC_LFIWAX): Ditto.
16145         (UNSPEC_LFIWZX): Ditto.
16146         (UNSPEC_FCTIWUZ): Ditto.
16147         (rreg): Use correct constraints.
16148         (SI_CONVERT_FP): New mode attribute for floating point conversion
16149         tests.
16150         (E500_CONVERT): Ditto.
16151         (lfiwax): New insns for converting from integer to floating point
16152         utilizing newer instructions.  Attempt to optimize conversions
16153         that come from memory so that we don't load the value into a GPR,
16154         spill it to the stack and reload it into a FPR.
16155         (floatsi<mode>2_lfiwax): Ditto.
16156         (floatsi<mode>2_lfiwax_mem): Ditto.
16157         (floatsi<mode>2_lfiwax_mem2): Ditto.
16158         (lfiwzx): Ditto.
16159         (floatunssi<mode>2_lfiwzx): Ditto.
16160         (floatunssi<mode>2_lfiwzx_mem): Ditto.
16161         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
16162         (floatdidf2_mem): Ditto.
16163         (floatunsdidf2_fcfidu): Ditto.
16164         (floatunsdidf2_mem): Ditto.
16165         (floatunsdisf2): Ditto.
16166         (floatunsdisf2_fcfidus): Ditto.
16167         (floatunsdisf2_mem): Ditto.
16168         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
16169         Use FCFID on 32-bit hosts that support it.
16170         (floatsidf2_internal): Ditto.
16171         (floatunssisf2): Ditto.
16172         (floatunssidf2): Ditto.
16173         (floatunssidf2_internal): Ditto.
16174         (floatsisf2): Ditto.
16175         (floatdidf2): Ditto.
16176         (floatdidf2_fpr): Ditto.
16177         (floatunsdidf2): Ditto.
16178         (floatdisf2): Ditto.
16179         (floatdisf2_fcfids): Ditto.
16180         (floatdisf2_internal1): Ditto.
16181         (fixuns_truncsfsi2): Delete, merge into common pattern for both
16182         SF/DF.  Add power7 support.
16183         (fix_truncsfsi2): Ditto.
16184         (fixuns_truncdfsi2): Ditto.
16185         (fixuns_truncdfdi2): Ditto.
16186         (fix_truncdfsi2): Ditto.
16187         (fix_truncdfsi2_internal): Ditto.
16188         (fix_truncdfsi2_internal_gfxopt): Ditto.
16189         (fix_truncdfsi2_mfpgpr): Ditto.
16190         (fctiwz): Ditto.
16191         (btruncdf2): Ditto.
16192         (btruncdf2_fpr): Ditto.
16193         (btructsf2): Ditto.
16194         (ceildf2): Ditto.
16195         (ceildf2_fpr): Ditto.
16196         (ceilsf2): Ditto.
16197         (floordf2): Ditto.
16198         (floordf2_fpr): Ditto.
16199         (floorsf2): Ditto.
16200         (rounddf2): Ditto.
16201         (rounddf2_fpr): Ditto.
16202         (roundsf2): Ditto.
16203         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
16204         (fix_trunc<mode>di2): Ditto.
16205         (fixuns_trunc<mode>si2): Ditto.
16206         (fixuns_trunc<mode>di2): Ditto.
16207         (fctiwz_<mode>): Ditto.
16208         (btrunc<mode>2): Ditto.
16209         (btrunc<mode>2_fpr): Ditto.
16210         (ceil<mode>2): Ditto.
16211         (ceil<mode>2_fpr): Ditto.
16212         (floor<mode>2): Ditto.
16213         (float<mode>2_fpr): Ditto.
16214         (round<mode>2): Ditto.
16215         (round<mode>2_fpr): Ditto.
16216         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
16217         (fixuns_trunc<mode>si2_stfiwx): Ditto.
16218         (fix_truncdfsi2_internal): Ditto.
16219         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
16220         converted value on stack, loaded into GPR, and then stored into
16221         the final destination.
16222         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
16223         FCTIDZ.
16224         (lrint<mode>di2): New insn, provide the lrint builtin functions.
16225         (ftruncdf2): Delete, unused.
16226         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
16227
16228         * config/rs6000/vsx.md (toplevel): Update copyright year.
16229         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
16230         (VSr3): Ditto.
16231
16232 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
16233             Jeremie Salvucci  <jeremie.salvucci@free.fr>
16234
16235         * gengtype.c (output_type_enum): Test the right union member.
16236
16237 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
16238
16239         PR target/41484
16240         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
16241         operands for operand 1.
16242         (sse4_1_extendv4qiv4si2): Ditto.
16243         (sse4_1_extendv2qiv2di2): Ditto.
16244         (sse4_1_extendv4hiv4si2): Ditto.
16245         (sse4_1_extendv2hiv2di2): Ditto.
16246         (sse4_1_extendv2siv2di2): Ditto.
16247         (sse4_1_zero_extendv8qiv8hi2): Ditto.
16248         (sse4_1_zero_extendv4qiv4si2): Ditto.
16249         (sse4_1_zero_extendv2qiv2di2): Ditto.
16250         (sse4_1_zero_extendv4hiv4si2): Ditto.
16251         (sse4_1_zero_extendv2hiv2di2): Ditto.
16252         (sse4_1_zero_extendv2siv2di2): Ditto.
16253         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
16254         (*sse4_1_extendv4qiv4si2): Ditto.
16255         (*sse4_1_extendv2qiv2di2): Ditto.
16256         (*sse4_1_extendv4hiv4si2): Ditto.
16257         (*sse4_1_extendv2hiv2di2): Ditto.
16258         (*sse4_1_extendv2siv2di2): Ditto.
16259         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
16260         (*sse4_1_zero_extendv4qiv4si2): Ditto.
16261         (*sse4_1_zero_extendv2qiv2di2): Ditto.
16262         (*sse4_1_zero_extendv4hiv4si2): Ditto.
16263         (*sse4_1_zero_extendv2hiv2di2): Ditto.
16264         (*sse4_1_zero_extendv2siv2di2): Ditto.
16265
16266 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
16267
16268         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
16269         (mips_function_arg): Delete.
16270         (mips_function_arg_boundary): Take a const_tree.
16271         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
16272         (mips_arg_info): Likewise.
16273         (mips_setup_incoming_varargs): Call mips_function_arg_advance
16274         instead of FUNCTION_ARG_ADVANCE.
16275         (mips_function_arg_advance): Adjust prototype.  Make static.
16276         (mips_function_arg): Likewise.
16277         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
16278         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
16279
16280 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
16281
16282         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
16283         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
16284         (function_arg): Delete.
16285         (function_arg_boundary): Take a const_tree.
16286         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
16287         (rs6000_spe_function_arg): Likewise.
16288         (rs6000_parm_start): Likewise.
16289         (rs6000_arg_size): Likewise.
16290         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
16291         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
16292         (rs6000_mixed_function_arg): Likewise.
16293         (function_arg): Rename to...
16294         (rs6000_function_arg): ...this.
16295         (function_arg_advance): Rename to...
16296         (rs6000_function_arg_advance_1): ...this
16297         (rs6000_function_arg_advance): New function.  Call it.
16298         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
16299         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
16300         (rs6000_function_value): Likewise.
16301         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
16302
16303 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16304
16305         * config/arm/arm.md (enabled): Test the value of arch_enabled
16306         rather than just using it.
16307
16308 2010-08-27  Olivier Hainque  <hainque@adacore.com>
16309             Eric Botcazou  <ebotcazou@adacore.com>
16310
16311         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
16312         cover all the possible offsets from this base.
16313         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
16314
16315 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
16316
16317         PR tree-optimization/44485
16318         * calls.c (flags_from_decl_or_type): For const or pure
16319         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
16320         together with ECF_CONST resp. ECF_PURE.
16321         * builtins.c (expand_builtin): Use flags_from_decl_or_type
16322         instead of querying flags directly.
16323         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
16324         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
16325
16326 2010-08-26  Richard Guenther  <rguenther@suse.de>
16327
16328         PR tree-optimization/45255
16329         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
16330         and externals are also invariant.
16331
16332 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
16333
16334         PR rtl-optimization/44858
16335         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
16336         newi2pat, make sure they don't affect newpat.
16337
16338         PR rtl-optimization/45400
16339         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
16340         SUBREG_REG if both modes are of MODE_INT class.
16341
16342 2010-08-25  Julian Brown  <julian@codesourcery.com>
16343
16344         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
16345         * config/arm/arm.md (generic_sched): No for Cortex-A5.
16346         (generic_vfp): Likewise.
16347         (cortex-a5.md): Include.
16348         * config/arm/cortex-a5.md: New.
16349
16350 2010-08-25  Richard Guenther  <rguenther@suse.de>
16351
16352         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
16353         * gimple.c (gimple_get_alias_set): Remove special handling
16354         for pointers.
16355
16356 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
16357
16358         PR middle-end/45355
16359         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
16360         dead_or_set_p when computing i0_feeds_i2_n.
16361
16362         * combine.c (find_split_point): Undo canonicalization of multiply-add
16363         to (minus x (mult)) when it seems likely that this will increase the
16364         chances of a split.
16365
16366 2010-08-25  Richard Guenther  <rguenther@suse.de>
16367
16368         PR lto/44562
16369         * lto-streamer.c (lto_record_common_node): Do not mess with
16370         TYPE_CANONICAL when not in lto.
16371         * gimple.c (gimple_register_type): Likewise.
16372
16373 2010-08-25  Richard Guenther  <rguenther@suse.de>
16374
16375         PR tree-optimization/45316
16376         * tree-ssa-pre.c (eliminate): Properly clean EH info.
16377
16378 2010-08-25  Richard Guenther  <rguenther@suse.de>
16379
16380         PR tree-optimization/45393
16381         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
16382         and clean EH info.  Avoid SSA update.
16383         (execute_cse_sincos): Cleanup the CFG if it has changed.
16384
16385 2010-08-25  Richard Guenther  <rguenther@suse.de>
16386
16387         PR middle-end/45379
16388         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
16389         TARGET_MEM_REF in alignment computation.
16390
16391 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
16392
16393         PR tree-optimization/45059
16394         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
16395         type conversions from newop{1,2}.  Assert t is a comparison and
16396         newop{1,2} after the stripping are gimple vals.
16397
16398 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
16399
16400         * config/arm/iterators.md (VU, SE, V_widen_l): New.
16401         (V_unpack, US): New.
16402         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
16403         (vec_unpack<US>_lo_<mode>): Likewise.
16404         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
16405         (neon_vec_unpack<US>_lo_<mode>): Likewise.
16406         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
16407         (vec_widen_<US>mult_hi_<mode>): Likewise.
16408         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
16409         (neon_vec_<US>mult_hi_<mode>"): Likewise.
16410         (neon_unpack<US>_<mode>): Widening move intermediate step for
16411         vectorizing without -mvectorize-with-neon-quad.
16412         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
16413         for vectorizing without -mvectorize-with-neon-quad.
16414         * config/arm/predicates.md (vect_par_constant_high): Check for
16415         high-half lanes of a vector.
16416         (vect_par_constant_low): Check for low-half lanes of a vector.
16417
16418 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
16419
16420         * tree-if-conv.c (struct ifc_dr): New.
16421         (IFC_DR): New.
16422         (DR_WRITTEN_AT_LEAST_ONCE): New.
16423         (DR_RW_UNCONDITIONALLY): New.
16424         (memref_read_or_written_unconditionally): Use the cached values
16425         when possible.
16426         (write_memref_written_at_least_once): Same.
16427         (if_convertible_loop_p): Initialize and free DR->aux fields.
16428
16429 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
16430
16431         * gimple.c (gimple_could_trap_p_1): Not static anymore.
16432         Pass an extra bool parameter include_mem.
16433         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
16434         (gimple_assign_rhs_could_trap_p): Same.
16435         * gimple.h (gimple_could_trap_p_1): Declared.
16436         * tree-data-ref.h (same_data_refs_base_objects): New.
16437         (same_data_refs): New.
16438         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
16439         (write_memrefs_written_at_least_once): New.
16440         (ifcvt_memrefs_wont_trap): New.
16441         (operations_could_trap): New.
16442         (ifcvt_could_trap_p): New.
16443         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
16444         Gets a vector of data refs.
16445         (if_convertible_stmt_p): Same.
16446         (if_convertible_loop_p_1): New.
16447         (if_convertible_loop_p): Call if_convertible_loop_p_1.
16448
16449 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
16450
16451         * common.opt (ftree-loop-if-convert-stores): New flag.
16452         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
16453         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
16454         the created statement before GSI.
16455         (if_convertible_phi_p): Allow virtual phi nodes when
16456         flag_loop_if_convert_stores is set.
16457         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
16458         Do not handle types that do not match is_gimple_reg_type.
16459         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
16460         when flag_loop_if_convert_stores is set, as LHS can contain
16461         memory refs.
16462         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
16463         to if_convertible_gimple_assign_stmt_p.
16464         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
16465         (replace_phi_with_cond_gimple_assign_stmt): Renamed
16466         predicate_scalar_phi.  Do not handle virtual phi nodes.
16467         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
16468         Call predicate_scalar_phi.
16469         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
16470         just after the labels for flag_loop_if_convert_stores, otherwise
16471         insert the predicate in the end of the BB.
16472         (predicate_mem_writes): New.
16473         (combine_blocks): Call predicate_all_scalar_phis.  When
16474         flag_loop_if_convert_stores is set, call predicate_mem_writes.
16475         (tree_if_conversion): Call mark_sym_for_renaming when
16476         flag_loop_if_convert_stores is set.
16477         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
16478         flag_loop_if_convert_stores is set.
16479
16480 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
16481
16482         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
16483         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
16484         (pa_function_value): Make static.
16485         (override_options): Rename to...
16486         (pa_option_override): ...this. Make static.
16487         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
16488         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
16489         TARGET_OPTION_OVERRIDE): Define.
16490         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
16491         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
16492         Remove.
16493         * config/pa/pa-protos.h (override_options): Remove.
16494
16495 2010-08-24  Richard Guenther  <rguenther@suse.de>
16496
16497         PR middle-end/45379
16498         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
16499         if addr->index is NULL or zero.
16500         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
16501         TARGET_MEM_REF more properly.
16502         (indirect_ref_may_alias_decl_p): Likewise.
16503         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
16504         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
16505
16506 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
16507
16508         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
16509         (m32c_override_options): Rename to...
16510         (m32c_option_override): ...this. Make static.
16511         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
16512         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
16513         Remove.
16514         * config/m32c/m32c-protos.h (m32c_override_options,
16515         m32c_function_value_regno_p): Remove.
16516
16517 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
16518
16519         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
16520         Fix a typo in a previous commit.
16521
16522 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
16523
16524         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
16525         Pre-initialize innerloop_iters to one.
16526
16527 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
16528
16529         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
16530         existing static function global.
16531
16532         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
16533         is changed to global.
16534
16535         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
16536         may_be_nonaddressable_p on base, and don't collect this reference
16537         if the address of the base could not be taken.
16538
16539 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
16540
16541         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
16542         enable the compiler to autovectorize mathmetical functions for
16543         power7 using the Mathematical Acceleration Subsystem library.
16544
16545         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
16546         handle which vector math library we have.
16547         (rs6000_override_options): Add -mveclibabi=mass support.
16548         (rs6000_builtin_vectorized_libmass): New function to handle auto
16549         vectorizing math functions that are in the MASS library.
16550         (rs6000_builtin_vectorized_function): Call it.
16551
16552         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
16553         -mveclibabi=mass.
16554
16555 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16556
16557         PR boehm-gc/34544
16558         * gthr-posix.h (__gthread_active_init): Delete.
16559         (__gthread_active_p): Do activity check here.
16560         Don't include errno.h on hppa-hpux.  Update comment.
16561         * gthr-posix95.h (__gthread_active_init): Delete.
16562         (__gthread_active_p): Do activity check here.
16563         Don't include errno.h on hppa-hpux.  Update comment.
16564         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
16565         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
16566         add -lpthread when -mt or -pthread is specified.
16567         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
16568         (LINK_GCC_C_SEQUENCE_SPEC): Define.
16569         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
16570         (stublib.c, pthread_default_stacksize_np-stub.o,
16571         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
16572         $(T)libgcc_stub.a): Add methods.
16573         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
16574         (stublib.c, pthread_default_stacksize_np-stub.o,
16575         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
16576         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
16577         pthread_mutex_unlock): New stubs.
16578
16579 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
16580
16581         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
16582         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
16583         options.
16584         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
16585         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
16586         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
16587         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
16588         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
16589         "-l".
16590         * cppspec.c: Include opts.h.
16591         (lang_specific_driver): Use cl_decoded_option structures.
16592         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
16593         * doc/tm.texi: Regenerate.
16594         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
16595         (driver_handle_option): Allow driver options needing no special
16596         processing.
16597         (process_command): Decode options before call to
16598         lang_specific_driver.  Pass decoded options to
16599         lang_specific_driver.
16600         * gcc.h (lang_specific_driver): Update prototype.
16601         * gccspec.c: Include opts.h.
16602         (lang_specific_driver): Use cl_decoded_option structures.
16603         * opts-common.c (option_ok_for_language, generate_option,
16604         generate_option_input_file): New.
16605         (decode_cmdline_option): Use option_ok_for_language.
16606         (decode_cmdline_options_to_array): Use generate_option_input_file.
16607         (handle_generated_option): Use generate_option.
16608         * opts.h (generate_option, generate_option_input_file): Declare.
16609
16610 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
16611
16612         * config/mips/mips.c (mips_override_options): Rename to...
16613         (mips_option_override): ...this. Make static.
16614         (TARGET_OPTION_OVERRIDE): Define.
16615         (mips_in_small_data_p): Update comment.
16616         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
16617         (FIXED_REGISTERS): Update comment.
16618         * config/mips/mips-protos.h (mips_override_options): Remove.
16619
16620 2010-08-21  Olivier Hainque  <hainque@adacore.com>
16621
16622         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
16623
16624 2010-08-21  Olivier Hainque  <hainque@adacore.com>
16625
16626         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
16627         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
16628
16629 2010-08-20  Jan Hubicka  <jh@suse.cz>
16630
16631         * tree-pass.h (pass_ipa_cdtor_merge): New function.
16632         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
16633         heap allocated.
16634         (record_cdtor_fn): Move to ipa.c; do not test for
16635         have_ctors_dtors.
16636         (build_cdtor): Move to ipa.c; add code avoiding construction
16637         when target have ctors/dtors and there is only one ctor/dtor at given
16638         priority.
16639         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
16640         sort; reverse order of constructors.
16641         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
16642         (cgraph_finalize_function): Do not call record_cdtor_fn.
16643         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
16644         (cgraph_build_static_cdtor): Move to ipa.c.
16645         * ipa.c: Include target.h and tree-iterator.h.
16646         (cgraph_build_static_cdtor, static_ctors, static_dtors,
16647         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
16648         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
16649         pass_ipa_cdtor_merge): New.
16650         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
16651         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
16652         bounds access.
16653
16654 2010-08-20  Jan Hubicka  <jh@suse.cz>
16655
16656         PR c++/45307
16657         PR c++/17736
16658         * cgraph.h (cgraph_only_called_directly_p,
16659         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
16660         static cdtors.
16661         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
16662         are not needed.
16663         (cgraph_finalize_function): Static cdtors are reachable.
16664         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
16665
16666 2010-08-20  Jan Hubicka  <jh@suse.cz>
16667
16668         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
16669         flag_wpa.
16670         * lto-streamer-out.c (lto_output): Likewise.
16671         * passes.c (ipa_write_optimization_summaries): Initialize statement
16672         uids.
16673
16674 2010-08-20  Olivier Hainque  <hainque@adacore.com>
16675
16676         * tree.h (alias_diag_flags): New enum.
16677         (alias_pair): Add an 'emitted_diags' field.
16678         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
16679         (assemble_alias): Initialize emitted_diags of new pairs.
16680
16681 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
16682
16683         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
16684         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
16685         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
16686         (STACK_CHECK_PROTECT): Define.
16687         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
16688         (output_probe_stack_range): Likewise.
16689         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
16690         builtin stack checking is enabled.
16691         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
16692         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
16693         (probe_stack_range): New insn.
16694
16695 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
16696
16697         PR target/45336
16698         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
16699         short first.
16700
16701         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
16702         char first.
16703
16704 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
16705
16706         PR target/45336
16707         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
16708         to cover zero extension into 64-bit register.
16709         (*sse2_pextrw): Likewise.
16710         (*sse4_1_pextrd_zext): New insn.
16711
16712 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
16713
16714         revert r163410, partially revert r163267.
16715         * config/rs6000/darwin.h (LIB_SPEC): Remove.
16716         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
16717         Darwin versions.
16718
16719 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
16720
16721         PR middle-end/44974
16722         * builtins.c (expand_builtin): Don't optimize away
16723         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
16724
16725 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
16726
16727         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
16728         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
16729         alternative 1 of operand 2.
16730
16731 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
16732             Paolo Bonzini  <bonzini@gnu.org>
16733
16734         * simplify-rtx.c (simplify_unary_operation_1): Optimize
16735         (sign_extend (zero_extend (...)) and
16736         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
16737
16738 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
16739
16740         PR rtl-optimization/45353
16741         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
16742         after bb_note is a BARRIER.
16743
16744 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
16745
16746         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
16747         linking libgcc.a.
16748
16749 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
16750             Michael Matz  <matz@suse.de>
16751
16752         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
16753
16754 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
16755
16756         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
16757         (ggc_mark_roots): ...here.
16758
16759 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
16760
16761         * vec.h (FOR_EACH_VEC_ELT): Define.
16762         * c-decl.c: Use it.
16763         * cfgloop.c: Likewise.
16764         * cfgloopmanip.c: Likewise.
16765         * cgraph.c: Likewise.
16766         * cgraphunit.c: Likewise.
16767         * combine.c: Likewise.
16768         * config/bfin/bfin.c: Likewise.
16769         * config/mips/mips.c: Likewise.
16770         * config/rs6000/rs6000.c: Likewise.
16771         * dbxout.c: Likewise.
16772         * df-scan.c: Likewise.
16773         * dominance.c: Likewise.
16774         * dse.c: Likewise.
16775         * dwarf2out.c: Likewise.
16776         * except.c: Likewise.
16777         * expr.c: Likewise.
16778         * function.c: Likewise.
16779         * gcse.c: Likewise.
16780         * genattr.c: Likewise.
16781         * ggc-common.c: Likewise.
16782         * gimplify.c: Likewise.
16783         * graphite-blocking.c: Likewise.
16784         * graphite-clast-to-gimple.c: Likewise.
16785         * graphite-dependences.c: Likewise.
16786         * graphite-interchange.c: Likewise.
16787         * graphite-poly.c: Likewise.
16788         * graphite-scop-detection.c: Likewise.
16789         * graphite-sese-to-poly.c: Likewise.
16790         * graphite.c: Likewise.
16791         * haifa-sched.c: Likewise.
16792         * ifcvt.c: Likewise.
16793         * implicit-zee.c: Likewise.
16794         * ipa-prop.c: Likewise.
16795         * ipa-struct-reorg.c: Likewise.
16796         * ipa.c: Likewise.
16797         * ira-build.c: Likewise.
16798         * ira-color.c: Likewise.
16799         * ira-emit.c: Likewise.
16800         * lambda-code.c: Likewise.
16801         * loop-invariant.c: Likewise.
16802         * loop-unroll.c: Likewise.
16803         * lower-subreg.c: Likewise.
16804         * lto-cgraph.c: Likewise.
16805         * lto-opts.c: Likewise.
16806         * lto-streamer-in.c: Likewise.
16807         * lto-streamer-out.c: Likewise.
16808         * lto-streamer.c: Likewise.
16809         * lto-symtab.c: Likewise.
16810         * matrix-reorg.c: Likewise.
16811         * opts.c: Likewise.
16812         * predict.c: Likewise.
16813         * print-tree.c: Likewise.
16814         * sdbout.c: Likewise.
16815         * sel-sched-dump.c: Likewise.
16816         * sel-sched-ir.c: Likewise.
16817         * sel-sched.c: Likewise.
16818         * sese.c: Likewise.
16819         * stor-layout.c: Likewise.
16820         * tree-cfg.c: Likewise.
16821         * tree-cfgcleanup.c: Likewise.
16822         * tree-chrec.c: Likewise.
16823         * tree-data-ref.c: Likewise.
16824         * tree-emutls.c: Likewise.
16825         * tree-inline.c: Likewise.
16826         * tree-into-ssa.c: Likewise.
16827         * tree-loop-distribution.c: Likewise.
16828         * tree-loop-linear.c: Likewise.
16829         * tree-mudflap.c: Likewise.
16830         * tree-outof-ssa.c: Likewise.
16831         * tree-parloops.c: Likewise.
16832         * tree-predcom.c: Likewise.
16833         * tree-pretty-print.c: Likewise.
16834         * tree-scalar-evolution.c: Likewise.
16835         * tree-ssa-live.c: Likewise.
16836         * tree-ssa-loop-im.c: Likewise.
16837         * tree-ssa-loop-ivcanon.c: Likewise.
16838         * tree-ssa-loop-ivopts.c: Likewise.
16839         * tree-ssa-loop-manip.c: Likewise.
16840         * tree-ssa-loop-niter.c: Likewise.
16841         * tree-ssa-loop-prefetch.c: Likewise.
16842         * tree-ssa-phiprop.c: Likewise.
16843         * tree-ssa-pre.c: Likewise.
16844         * tree-ssa-reassoc.c: Likewise.
16845         * tree-ssa-sccvn.c: Likewise.
16846         * tree-ssa-structalias.c: Likewise.
16847         * tree-ssa.c: Likewise.
16848         * tree-vect-data-refs.c: Likewise.
16849         * tree-vect-loop-manip.c: Likewise.
16850         * tree-vect-loop.c: Likewise.
16851         * tree-vect-patterns.c: Likewise.
16852         * tree-vect-slp.c: Likewise.
16853         * tree-vect-stmts.c: Likewise.
16854         * tree-vrp.c: Likewise.
16855         * tree.c: Likewise.
16856         * value-prof.c: Likewise.
16857         * var-tracking.c: Likewise.
16858         * varasm.c: Likewise.
16859         * vmsdbgout.c: Likewise.
16860
16861 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
16862             Richard Guenther  <richard.guenther@gmail.com>
16863
16864         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
16865         copy the src value and return a copy.
16866         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
16867         (C++ Volatiles): Adjust to describe C++ semantics only.
16868
16869 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
16870
16871         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
16872         be zero or nonzero.
16873         * doc/tm.texi: Regenerate.
16874         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
16875         * df-scan.c (df_get_exit_block_use_set), reginfo.c
16876         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
16877         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
16878         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
16879         to 1.
16880
16881 2010-08-20  Olivier Hainque  <hainque@adacore.com>
16882
16883         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
16884         an extra nop past a sibling call at the very end.
16885
16886 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
16887
16888         PR bootstrap/45350
16889         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
16890         a comment.
16891
16892 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
16893
16894         * target.def (function_arg, function_incoming_arg): Remove const
16895         qualifier on CUMULATIVE_ARGS parameter.
16896         * targhooks.h (default_function_arg, default_function_incoming_arg):
16897         Likewise.
16898         * targhooks.c (default_function_arg, default_function_incoming_arg):
16899         Likewise.
16900         * config/i386/i386.c (ix86_function_arg): Likewise.
16901
16902 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
16903
16904         PR target/45336
16905         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
16906         SIGN_EXTENDs or ZERO_EXTENDs.
16907
16908 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
16909
16910         PR target/42172
16911         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
16912         Take its cost into account if nonnull.
16913         (insn_a_feeds_b): New static function.
16914         (combine_instructions): Look for four-insn combinations.
16915         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
16916         them into account when computing all_adjacent and looking for other
16917         uses.
16918         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
16919         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
16920         (try_combine): New arg I0.  Handle four-insn combinations.
16921         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
16922         like ELIM_I1.
16923
16924 2010-08-19  Jason Merrill  <jason@redhat.com>
16925
16926         PR c++/45307
16927         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
16928         if ctor is empty.
16929         (gimplify_modify_expr_rhs): Adjust.
16930
16931 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
16932
16933         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
16934         bitmap_bit_p.
16935         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
16936         * dominance.c (iterate_fix_dominators): Likewise.
16937         * dse.c (set_usage_bits): Likewise.
16938         (set_position_unneeded, record_store): Likewise.
16939         * gimple-fold.c (get_maxval_strlen): Likewise.
16940         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
16941         * ipa-inline.c (update_caller_keys): Likewise.
16942         * ipa-split.c (verify_non_ssa_vars): Likewise.
16943         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
16944         (close_type_exposed_parameter, close_type_full_escape): Likewise.
16945         (close_addressof_down): Likewise.
16946         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
16947         (setup_allocno_left_conflicts_size): Likewise.
16948         (ira_reassign_conflict_allocnos): Likewise.
16949         (ira_reassign_pseudos): Likewise.
16950         * ira-emit.c (change_loop): Likewise.
16951         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
16952         * lto-streamer-out.c (write_symbol): Likewise.
16953         * predict.c (expr_expected_value_1): Likewise.
16954         * regstat.c (regstat_bb_compute_ri): Likewise.
16955         * sel-sched.c (create_block_for_bookkeeping): Likewise.
16956         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
16957         * stmt.c (expand_case): Likewise.
16958         * tree-eh.c (emit_eh_dispatch): Likewise.
16959         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
16960         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
16961         Likewise.
16962         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
16963         (rdg_build_components): Likewise.
16964         * tree-object-size.c (collect_object_sizes_for): Likewise.
16965         * tree-sra.c (convert_callers): Likewise.
16966         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
16967         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
16968         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
16969
16970 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
16971
16972         * config/i386/i386.md (*lea_1): Use P mode iterator.
16973         (lea add splitter): Also handle DImode operands.
16974         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
16975         predicate.  Do not use ix86_lea_for_add_ok.
16976         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
16977         (lea ashift splitter): Also handle DImode operands.
16978         (DImode lea ashift splitter): Remove splitter.
16979
16980 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
16981
16982         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
16983         ix86_binary_operator_ok.
16984
16985 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
16986
16987         PR rtl-optimization/44691
16988         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
16989         is not a register.
16990
16991 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
16992
16993         PR target/45070
16994         * config/arm/arm.c (arm_output_epilogue): Ensure that return
16995          value of size 1-3 is handled correctly.
16996
16997 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
16998
16999         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
17000         type for the conditional has wide enough range.
17001
17002 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
17003
17004         PR target/45327
17005         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
17006         ix86_binary_operator_ok.
17007
17008 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
17009
17010         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
17011         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
17012         code to output insn mnemonic.  Fix comment.
17013         (*addsi_1_zext): Add r-r-0 alternative 1.
17014         <TYPE_LEA>: Split insn to lea.
17015         <default>: Handle alternative 1.
17016         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
17017         multi-level if_then_else RTX to set "type" attribute.
17018         <default>: Handle alternative 2.
17019         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
17020         Use cond RTX instead of multi-level if_then_else RTX to set
17021         "type" attribute.
17022         <default>: Handle alternatives 2 and 4.
17023         (lea splitters): Update calls to ix86_lea_for_add_ok.
17024
17025         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
17026         argument.
17027         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
17028
17029 2010-08-18  Richard Guenther  <rguenther@suse.de>
17030
17031         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
17032         use operand helpers.
17033
17034 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
17035
17036         PR middle-end/45292
17037         * optabs.c (expand_bool_compare_and_swap): Expand pending
17038         pops before trying the optab.
17039
17040 2010-08-18  Yao Qi  <yao@codesourcery.com>
17041
17042         PR target/45094
17043         * config/arm/arm.c (output_move_double): Fix typo generating
17044         instructions ('ldr'->'str').
17045
17046 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
17047
17048         PR rtl-optimization/42575
17049         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
17050         live ranges.
17051
17052 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
17053
17054         * config/arm/arm-protos.h (arm_expand_sync): New.
17055         (arm_output_memory_barrier, arm_output_sync_insn): New.
17056         (arm_sync_loop_insns): New.
17057         * config/arm/arm.c (FL_ARCH7): New.
17058         (FL_FOR_ARCH7): Include FL_ARCH7.
17059         (arm_arch7): New.
17060         (arm_print_operand): Support %C markup.
17061         (arm_legitimize_sync_memory): New.
17062         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
17063         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
17064         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
17065         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
17066         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
17067         (arm_process_output_sync_insn, arm_output_sync_insn): New.
17068         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
17069         * config/arm/arm.h (struct arm_sync_generator): New.
17070         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
17071         (TARGET_HAVE_MEMORY_BARRIER): New.
17072         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
17073         * config/arm/arm.md: Include sync.md.
17074         (UNSPEC_MEMORY_BARRIER): New.
17075         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
17076         (VUNSPEC_SYNC_OP):New.
17077         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
17078         (sync_result, sync_memory, sync_required_value): New attributes.
17079         (sync_new_value, sync_t1, sync_t2): Likewise.
17080         (sync_release_barrier, sync_op): Likewise.
17081         (length): Add logic to length attribute defintion to call
17082         arm_sync_loop_insns when appropriate.
17083         * config/arm/sync.md: New file.
17084
17085 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
17086
17087         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
17088         ENABLE_TREE_CHECKING.
17089         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
17090         and GCC >= 4.3.
17091
17092 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
17093
17094         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
17095         or optimizing for size, always avoid lea if possible.
17096
17097         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
17098
17099 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
17100
17101         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
17102         Dunmmy function with NULL return unless the target is
17103         OSX >= 10.6 (Darwin10).
17104
17105 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
17106
17107         * gcc.c (spec_function): Add remove-outfile.
17108         (remove_outfile_spec_function): New function.
17109         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
17110         * invoke.texi (replace-outfile): Document.
17111
17112 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
17113
17114         PR target/45296
17115         * reginfo.c (globalize_reg): Reject stack registers.
17116
17117 2010-08-17  Richard Guenther  <rguenther@suse.de>
17118
17119         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
17120         list of conditional equivalences.
17121         (free_all_edge_infos): Adjust.
17122         (record_equivalences_from_incoming_edge): Likewise.
17123         (record_cond): Likewise.
17124         (build_and_record_new_cond): Likewise.
17125         (record_conditions): Likewise.
17126         (dom_opt_leave_block): Likewise.
17127
17128 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
17129
17130         * doc/invoke.texi (ms-extension): Add documentation.
17131
17132 2010-08-17  Richard Guenther  <rguenther@suse.de>
17133
17134         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
17135
17136 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
17137
17138         PR c/40563
17139         * c-decl.c (diagnose_uninitialized_cst_member): New function.
17140         (finish_decl): Use it to issue a -Wc++-compat warning about
17141         uninitialized const field in struct or union.
17142
17143         (finish_struct): Use strip_array_types.
17144
17145 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
17146
17147         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
17148         functions.
17149         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
17150         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
17151         call block_nreverse here.
17152         (blocks_nreverse): Rename decl temporary to block.
17153
17154 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
17155
17156         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
17157         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
17158         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
17159         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
17160         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
17161         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
17162         thumb2_iorsi3): Delete.
17163         (orsi_notsi_si): No longer a named pattern.
17164         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
17165         * config/arm/predicates.md (shift_amount_operand): New.
17166         (mult_operator): New.
17167         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
17168         attr enabled): New.
17169         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
17170         arch matches t2.
17171         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
17172         (not_shiftsi_compare0): Likewise, renamed from
17173         arm_notsi_shiftsi_compare0.
17174         (not_shiftsi_compare0_scratch): Likweise, renamed from
17175         arm_notsi_shiftsi_compare0_scratch.
17176         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
17177         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
17178         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
17179         so that the register alternative is disabled when the shift_operator
17180         is MULT.  Use "M" as the constraint for constants.
17181         (arith_shiftsi splitter): Enable for TARGET_32BIT.
17182         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
17183         constraint for constants.
17184         (arith_shiftsi_compare0_scratch): Likewise.
17185         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
17186         Handle Thumb2 alternative.
17187
17188 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
17189
17190         * doc/options.texi (NoDriverArg): Document.
17191         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
17192         -MDX and -MMDX.
17193         * opt-functions.awk (switch_flags): Handle NoDriverArg.
17194         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
17195         marking for CL_NO_DRIVER_ARG options when in the driver.
17196         * opts.h (CL_NO_DRIVER_ARG): Define.
17197         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
17198         CL_COMMON): Update values.
17199
17200 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
17201
17202         * common.opt: Add driver options.
17203         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
17204         * doc/options.texi (Driver, RejectDriver): Document.
17205         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
17206         print_prog_name, print_multi_directory, print_sysroot,
17207         print_multi_os_directory, print_multi_lib,
17208         print_sysroot_headers_suffix, report_times, combine_flag,
17209         use_pipes, wrapper_string): Remove.
17210         (save_switch, driver_unknown_option_callback,
17211         driver_wrong_lang_callback, driver_post_handling_callback,
17212         driver_handle_option): New.
17213         (spec_lang, last_language_n_infiles): Make file-scope static
17214         instead of local to process_command.
17215         (process_command): Use decode_cmdline_options_to_array and
17216         read_cmdline_option for option processing.  Compute have_c in
17217         prescan of decoded options.
17218         * opt-functions.awk (switch_flags): Handle Driver and
17219         RejectDriver.
17220         (var_type, var_type_struct): Handle Separate options as generating
17221         const char * variables.
17222         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
17223         CL_TARGET to be passed by caller if required.
17224         (decode_cmdline_options_to_array): Update comment.
17225         * opts.c (complain_wrong_lang): Handle options only valid for the
17226         driver.
17227         (decode_options): Update call to decode_cmdline_options_to_array.
17228         (print_filtered_help): Ignore driver-only options.
17229         (print_specific_help): Ignore CL_DRIVER.
17230         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
17231         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
17232         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
17233         Update values.
17234
17235 2010-08-16  Richard Guenther  <rguenther@suse.de>
17236
17237         * tree-cfg.c (verify_types_in_gimple_reference): Verify
17238         TARGET_MEM_REF a bit.
17239         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
17240         (create_mem_ref_raw): Always create TMR_OFFSET, store the
17241         alias pointer type via it.
17242         (copy_mem_ref_info): Adjust.
17243         (maybe_fold_tmr): Likewise.
17244         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
17245         (reference_alias_ptr_type): Likewise.
17246         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
17247         adjust documentation of TMR_OFFSET operand.
17248         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
17249         use the alias pointer type.
17250         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
17251         initialize mem attrs but the TMR itself.
17252         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
17253         similar to MEM_REF.
17254         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
17255         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
17256         (unshare_and_remove_ssa_names): Likewise.
17257         (copy_ref_info): Adjust.
17258         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
17259         TARGET_MEM_REF case.
17260         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
17261         at TMR_ORIGINAL.
17262         * tree.h (TMR_ORIGINAL): Remove.
17263         * gimple.c (get_base_address): For TARGET_MEM_REF with a
17264         symbol return that.
17265         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
17266         with a symbol.
17267         (get_addr_base_and_unit_offset): Likewise.
17268         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
17269         TARGET_MEM_REFs.
17270         (indirect_ref_may_alias_decl_p): Likewise.
17271         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
17272
17273 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
17274
17275         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
17276         with GCC version 4.6, the default setting (when not optimizing
17277         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
17278         been changed to -fomit-frame-pointer.
17279
17280 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
17281
17282         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
17283         Darwin10.  Do not link libgcc.a for Darwin >= 9.
17284
17285 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
17286
17287         * doc/invoke.texi (Warning Options): Fix terminology and markup
17288         in the description of how unknown warning options are handled.
17289
17290 2010-08-15  Ira Rosen  <irar@il.ibm.com>
17291
17292         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
17293         in basic blocks.
17294         (vect_supportable_dr_alignment): Check alignment for basic blocks.
17295         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
17296         data references.
17297         (vect_bb_vectorization_profitable_p): New function.
17298         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
17299         check if it's worthwhile to vectorize the basic block.
17300
17301 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
17302
17303         * reload.h (register_move_cost, memory_move_secondary_cost,
17304         secondary_reload_class): Adjust prototype.
17305         * rtl.h (reg_class_subset_p): Adjust prototype.
17306         * reload.c (secondary_reload_class): Change arguments type from
17307         enum reg_class to reg_class_t. Change result type to reg_class_t.
17308         * reginfo.c (register_move_cost, reg_class_subset_p): Change
17309         arguments type from enum reg_class to reg_class_t.
17310         (memory_move_secondary_cost): Change arguments type from
17311         enum reg_class to reg_class_t. Change type of saved_flags to
17312         reg_class_t.
17313
17314         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
17315         Remove macros.
17316         (mips_cost): Remove.
17317         (struct mips_rtx_cost_data): Moved to mips.c.
17318         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
17319         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
17320         (mips_cost): Make static.
17321         (mips_canonicalize_move_class): Change argument type to reg_class_t.
17322         Change result type to reg_class_t.
17323         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
17324         type from enum reg_class to reg_class_t.
17325         (mips_register_move_cost): Make static. Change arguments
17326         type from enum reg_class to reg_class_t.
17327         (mips_memory_move_cost): New function.
17328         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
17329
17330 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
17331
17332         PR rtl-optimization/43358
17333         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
17334         of a single hard register, using simplify_subreg_regno to decide
17335         what that register should be.
17336
17337 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
17338
17339         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
17340         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
17341         (loongson_pmull<V_suffix>): Rename to...
17342         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
17343
17344 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
17345
17346         * configure.ac: Enable -fomit-frame-pointer on darwin
17347         which support dwarf2.
17348         * config/i386/i386.c (override_options): Same.
17349
17350 2010-08-13  Jie Zhang  <jie@codesourcery.com>
17351
17352         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
17353
17354 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
17355
17356         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
17357         -MMD.
17358
17359 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
17360
17361         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
17362         up dot_prod pattern searching if a stmt is outside the loop.
17363
17364 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
17365             Uros Bizjak  <ubizjak@gmail.com>
17366
17367         * config.gcc: Handle --enable-frame-pointer.
17368
17369         * configure.ac: Add --enable-frame-pointer.
17370         * configure: Regenerated.
17371
17372         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
17373         (override_options): If not configured with --enable-frame-pointer,
17374         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
17375         optimizing for size), -fasynchronous-unwind-tables and
17376         -maccumulate-outgoing-args by default.
17377
17378 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
17379
17380         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
17381
17382         PR middle-end/45262
17383         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
17384         -a overflows.  Normalize the range.
17385
17386 2010-08-12  Richard Guenther  <rguenther@suse.de>
17387
17388         PR tree-optimization/45232
17389         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
17390         for types with undefined overflow.
17391         (reassociate_bb): Allow re-associating of bit and min/max
17392         operations for types with undefined overflow.
17393         * tree-ssa-forwprop.c (associate_plusminus): New function.
17394         (tree_ssa_forward_propagate_single_use_vars): Call it.
17395
17396 2010-08-12  Richard Guenther  <rguenther@suse.de>
17397
17398         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
17399         * tree-ssa-alias.c (get_ptr_info): Move ...
17400         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
17401         align and misalign fields conservatively.
17402         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
17403         derive alignment information.
17404         (evaluate_stmt): Derive alignment information from memory
17405         allocation functions.
17406         * tree.h (get_pointer_alignment): Make unsigned.
17407         * builtins.c (get_object_alignment): Use alignment information we
17408         have computed for pointers.
17409         (get_pointer_alignment): Likewise.  Make conservative, return
17410         and unsigned value.
17411         (expand_builtin_strlen): Adjust.
17412         (expand_builtin_memcmp): Likewise.
17413         (expand_builtin_strcmp): Likewise.
17414         (expand_builtin_strncmp): Likewise.
17415         (get_builtin_sync_mem): Use at least mode alignment.
17416         (fold_builtin_memset): Adjust.
17417         (fold_builtin_memory_op): Likewise.
17418         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
17419         information also dump pointer alignment knowledge.
17420         (dump_gimple_stmt): Likewise.
17421
17422 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
17423
17424         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
17425         (EMPTY_FIELD_BOUNDARY): Remove.
17426         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
17427
17428 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
17429
17430         PR debug/45259
17431         * caller-save.c (save_call_clobbered_regs): Only swap notes with
17432         DEBUG_INSNs if n_regs_saved.
17433
17434 2010-08-12  Wei Guozhi  <carrot@google.com>
17435
17436         PR target/44999
17437         * config/arm/arm.md (andsi3): Change to zero extension if possible.
17438         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
17439
17440 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
17441
17442         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
17443
17444         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
17445
17446 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17447
17448         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
17449         the case removed in the previous patch, when the only phi argument
17450         is defined in the same loop as the phi node itself.  Handle it
17451         separately from the invariant case by both propagating it outside
17452         the region and replacing the phi node with an assign.
17453
17454 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17455
17456         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
17457         constant phi nodes with one argument are is_gimple_min_invariant
17458         and SSA_NAME_IS_DEFAULT_DEF.
17459
17460 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17461
17462         * graphite-cloog-util.c (oppose_constraint):
17463         Extend loop counter's value range (CLOOG_ORG).
17464         (cloog_matrix_to_ppl_constraint): Same.
17465         (new_Constraint_System_from_Cloog_matrix): Same.
17466         * graphite-cloog-compat.h (matrix_num_type): New.
17467
17468 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17469
17470         * graphite.c (graphite_initialize): Do not initialize
17471         CLooG and initialize the Parma Polyhedra Library
17472         manually when using CLOOG_ORG.
17473         (graphite_finalize): Do not finalize CLooG and finalize
17474         the Parma Polyhedra Library manually when using CLOOG_ORG.
17475         * graphite-cloog-compat.h (cloog_initialize): Hide function
17476         when using CLOOG_ORG.
17477         (cloog_finalize): Same.
17478
17479 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17480
17481         * graphite-clast-to-gimple.c (free_scattering): Change
17482         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
17483         (CLOOG_ORG).
17484         (build_cloog_prog): Same.
17485         * graphite-cloog-compat.h (cloog_domain): Removed.
17486         (cloog_scattering): New.
17487         (cloog_set_domain): Removed.
17488         (cloog_set_scattering): New.
17489         (cloog_next_domain): Removed.
17490         (cloog_next_scattering): New.
17491         (cloog_set_next_domain): Removed.
17492         (cloog_set_next_scattering): New.
17493         (CloogScatteringList): New.
17494         (CloogScattering): New.
17495         (cloog_scattering_free): New.
17496         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
17497         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
17498         New.
17499
17500 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17501
17502         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
17503         CloogState.
17504         (set_cloog_options): Same.
17505         (print_clast_stmt): Same.
17506         (scop_to_clast): Same.
17507         (print_generated_program): Same.
17508         (gloog): Same.
17509         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
17510         (scop_to_clast): Extend with CloogState.
17511         * graphite-cloog-util.c: Include graphite-cloog-compat.h
17512         (new_Cloog_Domain_from_ppl_Polyhedron):
17513         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
17514         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
17515         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
17516         * graphite-cloog-util.h (build_cloog_prog): Same.
17517         * graphite-cloog-copat.h (build_cloog_prog): New.
17518         (CloogState): New.
17519         (cloog_state_malloc): New.
17520         (cloog_state_free): New.
17521         (cloog_loop_malloc): New.
17522         (cloog_options_malloc): New.
17523         (cloog_statement_alloc): New.
17524         (cloog_domain_from_cloog_matrix): New.
17525         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
17526         (new_Cloog_Domain_from_ppl_Polyhedron): New.
17527
17528 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17529
17530         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
17531         type of NAME now depends on used CLooG version.
17532         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
17533         (gcc_type_for_clast_expr): Same.
17534         (print_clast_stmt): Replace pprint with clast_pprint.
17535         * graphite-cloog-compat.h: Provide compatibility macros for
17536         CLooG Legacy.
17537         (clast_name_p): New.
17538         (clast_expr_term): New.
17539         (clast_expr_red): New.
17540         (clast_expr_bin): New.
17541         (clast_pprint): New.
17542
17543 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17544
17545         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
17546         compatible to newer CLooG releases (CLOOG_ORG).
17547         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
17548         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
17549         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
17550         (build_cloog_prog) : New.
17551         (cloog_program_extract_scalars): New.
17552         (cloog_program_scatter): New.
17553
17554 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17555
17556         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
17557         conditionally (CLOOG_ORG).
17558         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
17559         (cloog_statement_usr): New.
17560         (cloog_domain): Same.
17561         (cloog_set_domain): Same.
17562         (cloog_next_domain): Same.
17563         (cloog_set_next_domain): Same.
17564         (cloog_program_nb_scattdims): Same.
17565         (cloog_program_set_nb_scattdims): Same.
17566         (cloog_program_names): Same.
17567         (cloog_program_set_names): Same.
17568         (cloog_program_set_context): Same.
17569         (cloog_program_set_loop): Same.
17570         (cloog_program_blocklist): Same.
17571         (cloog_program_set_blocklist): Same.
17572         (cloog_program_scaldims): Same.
17573         (cloog_program_set_scaldims): Same.
17574         (cloog_names_nb_parameters): Same.
17575         (cloog_names_set_nb_parameters): Same.
17576         (cloog_names_parameters): Same.
17577         (cloog_names_set_parameters): Same.
17578         (cloog_names_set_nb_iterators): Same.
17579         (cloog_names_set_iterators): Same.
17580         (cloog_names_set_nb_scattering): Same.
17581         (cloog_names_set_scattering): Same.
17582         (cloog_statement_set_usr): Same.
17583         (cloog_loop_set_next): Same.
17584         (cloog_loop_set_domain): Same.
17585         (cloog_loop_set_block): Same.
17586         (cloog_block_list_next): Same.
17587         (cloog_block_list_set_next):
17588         (cloog_block_list_set_block): Same.
17589
17590 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17591
17592         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
17593         a bool.
17594         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
17595         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
17596         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
17597         when something has been changed.
17598         (rewrite_commutative_reductions_out_of_ssa): Same.
17599
17600 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17601
17602         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
17603         handle the case when def is in the sese region.
17604         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
17605         for invariant expressions.
17606         (rewrite_cross_bb_phi_deps): Removed.
17607         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
17608         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
17609         rewrite_cross_bb_phi_deps.
17610
17611 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17612
17613         * graphite-sese-to-poly.c
17614         (rewrite_commutative_reductions_out_of_ssa_loop): Call
17615         scev_analyzable_p only on is_gimple_reg
17616
17617 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17618
17619         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
17620         (rewrite_close_phi_out_of_ssa): Propagate constant values or
17621         parametric expressions outside the scop region.
17622         (rewrite_cross_bb_scalar_deps): Same.
17623         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
17624
17625 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17626
17627         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
17628         SSA_NAME_DEF_STMT only on SSA_NAMEs.
17629
17630 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17631
17632         * tree-scalar-evolution.c (instantiate_scev_name): Do not
17633         instantiate default definitions.
17634
17635 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
17636             Sebastian Pop  <sebastian.pop@amd.com>
17637
17638         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
17639         (loop_exits_from_bb_p): New.
17640         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
17641         (loop_exits_from_bb_p): Declared.
17642         * graphite-scop-detection.c (scopdet_basic_block_info): Call
17643         loop_exits_to_bb_p.
17644
17645 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17646
17647         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
17648         extra parameter for the region.  Call scev_analyzable_p.
17649         (rewrite_reductions_out_of_ssa): Update call to
17650         rewrite_close_phi_out_of_ssa.
17651         (rewrite_cross_bb_phi_deps): Same.
17652         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
17653         parameter for the region.  Call scev_analyzable_p.
17654         (rewrite_commutative_reductions_out_of_ssa): Update call to
17655         rewrite_commutative_reductions_out_of_ssa_loop.
17656
17657 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17658
17659         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
17660
17661 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17662
17663         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
17664         SSA scalar phi nodes that can be scev_analyzable_p.
17665
17666 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17667
17668         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
17669         handle SSA_NAME_IS_DEFAULT_DEF.
17670
17671 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17672
17673         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
17674
17675 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17676
17677         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
17678         case non close-phi nodes with one argument.
17679
17680 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17681
17682         * sese.h (scev_analyzable_p): Scevs could be expressions without
17683         chrecs and still be scev_analyzable_p.
17684
17685 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17686
17687         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
17688
17689 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17690
17691         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
17692         * cfgloop.h (struct loop): Remove single_iv field.
17693         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
17694         (scop_canonicalize_loops): Removed.
17695         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
17696         over all the loop phi nodes in loop->header.
17697         (build_poly_scop): Remove use of scop_canonicalize_loops.
17698
17699 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17700
17701         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
17702         handle GIMPLE_CALL.
17703
17704 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17705
17706         * tree-chrec.c (chrec_apply): Should only apply to the specified
17707         variable.  Also handle multivariate chains of recurrences that
17708         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
17709
17710 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17711
17712         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
17713         (debug_clast_name_indexes_1): Removed.
17714         (debug_clast_name_indexes): Removed.
17715         (pbb_to_depth_to_oldiv): Removed.
17716         (build_iv_mapping): Replace the use of rename_map with iv_map.
17717         (translate_clast_user): Remove uses of rename_map.  Allocate and
17718         free iv_map.
17719         (translate_clast_for_loop): Remove uses of rename_map.
17720         (translate_clast_for): Same.
17721         (translate_clast_guard): Same.
17722         (translate_clast): Same.
17723         (gloog): Same.
17724         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
17725         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
17726         * sese.c (set_rename): Now static.
17727         (rename_variables_in_stmt): Removed.
17728         (rename_uses): New.
17729         (is_parameter): Removed.
17730         (is_iv): Removed.
17731         (expand_scalar_variables_call): Removed.
17732         (expand_scalar_variables_ssa_name): Removed.
17733         (expand_scalar_variables_expr): Removed.
17734         (expand_scalar_variables_stmt): Removed.
17735         (expand_scalar_variables): Removed.
17736         (rename_variables): Removed.
17737         (remove_condition): Removed.
17738         (get_true_edge_from_guard_bb): Removed.
17739         (get_false_edge_from_guard_bb): Removed.
17740         (struct igp): Removed.
17741         (default_before_guard): Removed.
17742         (convert_for_phi_arg): Removed.
17743         (add_guard_exit_phis): Removed.
17744         (insert_guard_phis): Removed.
17745         (graphite_copy_stmts_from_block): Now also uses iv_map and a
17746         region.  Do not copy conditions.  Do not copy induction variables.
17747         Call rename_uses.
17748         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
17749         the translated statement.  Use the iv_map for the induction
17750         variable renaming.
17751         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
17752         (set_rename): Removed declaration.
17753         (scev_analyzable_p): ...here.
17754         * tree-chrec.c (chrec_apply_map): New.
17755         * tree-chrec.h (chrec_apply_map): Declared.
17756
17757 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17758
17759         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
17760         insert_loop_close_phis.
17761         * sese.c (name_defined_in_loop_p): Removed.
17762         (expr_defined_in_loop_p): Removed.
17763         (alive_after_loop): Removed.
17764         (close_phi_not_yet_inserted_p): Removed.
17765         (struct alep): Removed.
17766         (add_loop_exit_phis): Removed.
17767         (insert_loop_close_phis): Removed.
17768
17769 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17770
17771         * graphite-cloog-util.c
17772         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
17773         * graphite-poly.c
17774         (psct_scattering_dim_for_loop_depth): Same.
17775
17776 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17777
17778         * graphite-cloog-util.h: Added cloog.h.
17779         * graphite-blocking.c: Removed cloog.h.
17780         * graphite-dependences.c: Same.
17781         * graphite-interchange.c: Same.
17782         * graphite-poly.c: Same.
17783         * graphite-ppl.c: Same.
17784         * graphite-scop-detection.c: Same.
17785         * graphite-sese-to-poly.c:
17786         Removed cloog.h.
17787         Removed graphite-clast-to-gimple.h.
17788         (check_poly_representation): Removed (unused).
17789         * graphite-sese-to-poly.h
17790         (check_poly_representation): Removed (unused).
17791
17792 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17793
17794         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
17795         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
17796         (graphite-cloog-util.o): New.
17797         (graphite-ppl.o): Added graphite-cloog-util.h.
17798         * graphite-clast-to-gimple.c:
17799         Added graphite-cloog-util.h to include statements.
17800         * graphite-cloog-util.c: New.
17801         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
17802         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
17803         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
17804         (new_C_Polyhedron_from_Cloog_Matrix): Same.
17805         (insert_constraint_into_matrix): Same.
17806         (ppl_Constrain_System_number_of_constraints): Same.
17807         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
17808         (oppose_constraint): Same.
17809         (cloog_matrix_to_ppl_constraint): Same.
17810         (new_Constraint_System_from_Cloog_Matrix): Same.
17811         * graphite-cloog-util.h: New.
17812         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
17813         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
17814         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
17815         (new_C_Polyhedron_from_Cloog_Matrix): Same.
17816         (insert_constraint_into_matrix): Same.
17817         * graphite-ppl.c:
17818         Added graphite-cloog-util.h to include statements.
17819         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
17820         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
17821         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
17822         (new_C_Polyhedron_from_Cloog_Matrix): Same.
17823         (insert_constraint_into_matrix): Same.
17824         (ppl_Constrain_System_number_of_constraints): Same.
17825         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
17826         (oppose_constraint): Same.
17827         (cloog_matrix_to_ppl_constraint): Same.
17828         (new_Constraint_System_from_Cloog_Matrix): Same.
17829         * graphite-ppl.h:
17830         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
17831         graphite-cloog-util.h.
17832         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
17833         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
17834         (new_C_Polyhedron_from_Cloog_Matrix): Same.
17835         (insert_constraint_into_matrix): Same.
17836
17837 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17838
17839         * graphite-clast-to-gimple.c
17840         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
17841         (precision_for_interval): Same.
17842         (gcc_type_for_interval): Same.
17843         (compute_type_for_level): Same.
17844         * graphite-interchange.c
17845         (lst_interchange_profitable_p): Same.
17846         * graphite-poly.c
17847         (psct_scattering_dim_for_loop_depth): Same.
17848         * graphite-ppl.c
17849         (ppl_max_for_le_pointset): Same.
17850         (ppl_min_for_le_pointset): Same.
17851
17852 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17853
17854         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
17855         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
17856
17857 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17858
17859         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
17860         rewrite_close_phi_out_of_ssa.
17861
17862 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17863
17864         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
17865
17866 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17867
17868         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
17869         rename_map.
17870         * sese.c (debug_rename_map): Same.
17871         (get_rename): Same.
17872         (set_rename): Same.
17873         (rename_variables_in_stmt): Same.
17874         (expand_scalar_variables_call): Same.
17875         (expand_scalar_variables_ssa_name): Same.
17876         (expand_scalar_variables_expr): Same.
17877         (expand_scalar_variables_stmt): Same.
17878         (expand_scalar_variables): Same.
17879         (rename_variables): Same.
17880         (graphite_copy_stmts_from_block): Same.
17881         (copy_bb_and_scalar_dependences): Same.
17882
17883 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17884
17885         * graphite-clast-to-gimple.c (copy_renames): Removed.
17886         (translate_clast_for): Do not call copy_renames.
17887         (translate_clast_guard): Same.
17888
17889 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17890
17891         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
17892         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
17893         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
17894         before rewrite_cross_bb_scalar_deps.
17895
17896 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17897
17898         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
17899         Early return in when flag_associative_math is not set.
17900
17901 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17902
17903         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
17904         of SSA copies on edges except for loop->latch.
17905
17906 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17907
17908         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
17909         Split out of rewrite_reductions_out_of_ssa.
17910         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
17911         Declared.
17912         * graphite.c (graphite_transform_loops): Call it.
17913
17914 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17915
17916         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
17917
17918 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
17919
17920         * dbgcnt.def (graphite_scop): New counter.
17921         * graphite.c: Include dbgcnt.h.
17922         (graphite_transform_loops): Use new counter to limit transformations.
17923         * Makefile.in (graphite.o): Depend on DBGCNT_H.
17924
17925 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17926
17927         * passes.c (init_optimization_passes): Add pass_graphite.
17928         Schedule a pass_copy_prop before pass_graphite_transforms.
17929         * timevar.def (TV_GRAPHITE): Declared.
17930         * tree-pass.h (pass_graphite): Declared.
17931         * tree-ssa-loop.c (pass_graphite): New.
17932
17933 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17934
17935         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
17936         Remove calls to rename_nb_iterations and rename_sese_parameters.
17937         * graphite-clast-to-gimple.h (gloog): Update declaration.
17938         * graphite.c (graphite_transform_loops): Update call to gloog.
17939         * sese.c (rename_variables_in_expr): Removed.
17940         (rename_nb_iterations): Removed.
17941         (rename_sese_parameters): Removed.
17942         * sese.h (rename_nb_iterations): Removed.
17943         (rename_sese_parameters): Removed.
17944
17945 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17946
17947         * graphite-clast-to-gimple.c (gloog): Remove call to
17948         sese_adjust_liveout_phis.
17949         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
17950         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
17951         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
17952         rewrite_phi_out_of_ssa.
17953         * sese.c (get_vdef_before_sese): Removed.
17954         (sese_adjust_vphi): Removed.
17955         (sese_adjust_liveout_phis): Removed.
17956         * sese.h (sese_adjust_liveout_phis): Removed.
17957
17958 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17959
17960         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
17961         argument for the place after which to insert the out of SSA copy.
17962         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
17963         (rewrite_phi_out_of_ssa): Same.
17964         (rewrite_cross_bb_scalar_deps): Same.
17965         (insert_copyout): Removed.
17966         (insert_copyin): Removed.
17967         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
17968         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
17969         insert_copyin.
17970
17971 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17972
17973         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
17974         (rewrite_reductions_out_of_ssa): Same.
17975         (rewrite_commutative_reductions_out_of_ssa): Same.
17976         (build_poly_scop): Do not call these functions.
17977         * graphite-sese-to-poly.h (build_poly_scop): Declared.
17978         (rewrite_reductions_out_of_ssa): Declared.
17979         (rewrite_commutative_reductions_out_of_ssa): Declared.
17980         * graphite.c (graphite_transform_loops): Call on every scop
17981         rewrite_commutative_reductions_out_of_ssa before calling
17982         rewrite_reductions_out_of_ssa and build_scop_bbs.
17983
17984 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17985
17986         * graphite-dependences.c (dot_deps): Make system call to dotty run
17987         in background.
17988         (dot_deps_stmt): Same.
17989         * graphite-poly.c (dot_lst): Same.
17990
17991 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17992
17993         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
17994         phi_arg_in_outermost_loop.
17995         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
17996         (remove_invariant_phi): Same.
17997
17998 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
17999
18000         * target.def (output_addr_const_extra): New hook.
18001         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
18002         * doc/tm.texi: Regenerate.
18003         * targhooks.c (default_asm_output_addr_const_extra): New function.
18004         * targhooks.h (default_asm_output_addr_const_extra): Declare.
18005         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
18006         target hook.
18007
18008         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
18009         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
18010         * config/i386/i386.h (output_addr_const_extra): Rename to...
18011         (i386_asm_output_addr_const_extra): ...this. Make static.
18012         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
18013
18014 2010-08-11  Richard Henderson  <rth@redhat.com>
18015
18016         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
18017
18018 2010-08-11  Nick Clifton  <nickc@redhat.com>
18019
18020         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
18021         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
18022         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
18023         stormy16-lib2-cmpsi.c.
18024
18025         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
18026         -O2.
18027
18028 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
18029
18030         * opts.h (struct cl_option_handler_func): Make handler take
18031         cl_decoded_option structure as parameter, not individual elements.
18032         (struct cl_option_handlers): Make callbacks take cl_decoded_option
18033         structure as parameter, not individual elements.
18034         (handle_option): Take cl_decoded_option structure as parameter,
18035         not individual elements.
18036         (handle_generated_option): Declare.
18037         * opts-common.c (handle_option): Take cl_decoded_option structure
18038         as parameter, not individual elements.  Update calls to callback
18039         and handler functions.
18040         (handle_generated_option): New.
18041         (read_cmdline_option): Update calls to callback functions and
18042         handle_option.
18043         * opts.c (common_handle_option, complain_wrong_lang,
18044         unknown_option_callback, post_handling_callback,
18045         lang_handle_option, target_handle_option): Take cl_decoded_option
18046         structure as parameter, not individual elements.
18047         (lang_handle_option, target_handle_option, common_handle_option):
18048         Assert option has at most one argument.
18049         (enable_warning_as_error): Call handle_generated_option instead of
18050         handle_option.  Do not pass -Werror argument as argument of
18051         generated option.
18052
18053 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18054
18055         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
18056         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
18057         (SUBWORD_BOOL_CAS): Likewise.
18058         (SUBWORD_SYNC_OP): Likewise.
18059         (SUBWORD_TEST_AND_SET): Likewise.
18060         (FETCH_AND_OP_WORD): Parenthesise INF_OP
18061         (SUBWORD_SYNC_OP): Likewise.
18062         (OP_AND_FETCH_WORD): Likewise.
18063
18064 2010-08-10  Xinliang David Li  <davidxl@google.com>
18065
18066         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
18067         compute max/min offset in address.
18068
18069 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
18070
18071         * ira-live.c: Include sbitmap.h.
18072         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
18073         Compress live ranges even more.
18074
18075 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
18076
18077         * coverage.c (ctr_labels): Delete.
18078
18079 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
18080
18081         PR bootstrap/45177
18082         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
18083         test here from arm_gen_load_multiple_1.
18084         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
18085         multiple_operation_profitable_p.
18086
18087 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
18088
18089         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
18090         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
18091
18092 2010-08-10  Richard Henderson  <rth@redhat.com>
18093
18094         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
18095         after saving registers.  Assert that SSE registers are only saved
18096         with a sufficiently aligned frame.
18097         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
18098         remove stack_realign_fp handling.
18099         (ix86_expand_prologue): Save int registers before stack_realign_fp,
18100         and do not mark the stack alignment as frame related.
18101         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
18102
18103         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
18104         saves when re-aligning the stack.
18105
18106 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
18107
18108         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
18109         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
18110         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
18111
18112 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
18113
18114         * dwarf2out.c (struct die_struct): Move die_tag to the end.
18115
18116 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
18117
18118         * config/arm/iterators.md: New file.
18119         * config/arm/arm.md: Include iterators.md.
18120         (QHSI): Move to new file.
18121         (LTUGEU, cnb, optab, ior_xor): Likewise.
18122         * config/arm/iwmmxt.md (VMMX): Move to new file.
18123         (VSHFT, MMX_char): Likewise.
18124         * config/arm/neon.md (VD): Move to new file.
18125         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
18126         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
18127         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
18128         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
18129         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
18130         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
18131         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
18132         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
18133         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
18134         (Is_d_reg, V_mode_nunits): Likewise.
18135         * config/arm/vec-common.md (VALL): Move to new file.
18136         (VALLW, VINT, VINTW): Likewise.
18137
18138 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
18139
18140         PR middle-end/45182
18141         * combine.c (make_compound_operation): Don't try to convert
18142         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
18143
18144 2010-08-10  Richard Guenther  <rguenther@suse.de>
18145
18146         * tree.h (get_object_alignment): Adjust prototype.
18147         * builtins.c (get_object_alignment): Return unsigned int,
18148         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
18149         and TARGET_MEM_REF properly.
18150         (get_pointer_alignment): Adjust.
18151         * emit-rtl.c (get_mem_align_offset): Adjust comment.
18152         (set_mem_attributes_minus_bitpos): Adjust.
18153         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
18154
18155 2010-08-10  Richard Guenther  <rguenther@suse.de>
18156
18157         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
18158         (copy_prop_visit_assignment): Simplify.
18159         (copy_prop_visit_stmt): Also visit assignments from
18160         constants.
18161         (copy_prop_visit_phi_node): Use operand_equal_p.
18162
18163 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
18164
18165         * ipa-split.c (find_split_points): Free stack.
18166
18167 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
18168
18169         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
18170         * tree.c (tree_node_kind): Delete corresponding entries.
18171
18172 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
18173
18174         * alias.c (may_alias_p): Remove unused ret.
18175
18176 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
18177
18178         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
18179         alias_sets_conflict_p.
18180         (walk_mems_1): Moved from alias.c.
18181         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
18182         in alias.c.
18183         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
18184         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
18185         * alias.c (walk_mems_2): Moved to ddg.c.
18186         (walk_mems_1): Ditto.
18187         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
18188         to ddg.c.
18189         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
18190         disambiguation.
18191         *(may_alias_p): New function to check whether two memory expression
18192         may alias or not. Currently used in buidling inter-iteration memory
18193         dependence.
18194         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
18195         (insn_alias_sets_conflict_p): Removed
18196         *rtl.h (may_alias_p): New function prototype.
18197
18198 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
18199
18200         * tree.c (nreverse): Assert that we don't have a BLOCK.
18201
18202 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
18203
18204         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
18205         * config/arm/arm.c (arm_get_pcs_model): Likewise.
18206         * config/avr/avr.c (init_cumulative_args): Likewise.
18207         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
18208         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
18209         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
18210         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
18211         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
18212         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
18213         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
18214         * dwarf2out.c (gen_subprogram_die): Likewise.
18215         * function.c (allocate_struct_function): Likewise.
18216         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
18217         (deserves_ellipsis): Delete.
18218
18219 2010-08-09  Richard Guenther  <rguenther@suse.de>
18220
18221         * tree-ssa-copy.c (cached_last_copy_of): Remove.
18222         (valueize_val): New function.
18223         (get_last_copy_of): Remove.
18224         (set_copy_of_val): Simplify.
18225         (dump_copy_of): Likewise.
18226         (copy_prop_visit_cond_stmt): Use valueize_val.
18227         (copy_prop_visit_phi_node): Properly handle unvisited names.
18228         Drop code managing copy-of chains.
18229         (init_copy_prop): Adjust.
18230         (fini_copy_prop): Likewise.
18231         (execute_copy_prop): Remove obsolete comment.
18232
18233 2010-08-09  Richard Guenther  <rguenther@suse.de>
18234
18235         PR middle-end/44632
18236         * function.c (gimplify_parameters): Do not clear addressable
18237         bit of the original parameter.
18238
18239 2010-08-09  Richard Guenther  <rguenther@suse.de>
18240
18241         PR middle-end/45212
18242         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
18243         alignment from MEM_REF offset only if we took it from the
18244         base object.
18245
18246 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
18247
18248         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
18249
18250 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
18251
18252         * c-tree.h (build_arg_info): Declare.
18253         * c-decl.c (build_arg_info): Define.
18254         (get_parm_info): Call it.  Delete initialization code.
18255         * c-parser.c (c_parser_parms_declarator): Likewise.
18256         (c_parser_parms_list_declaractor): Likewise.
18257
18258 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
18259
18260         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
18261         (struct c_arg_info): Change type of tags field.
18262         * c-decl.c (grokdeclarator): Update for changed type of tags field.
18263         (get_parm_info): Likewise.
18264         (store_parm_decls_newstyle): Likewise.
18265
18266 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
18267
18268         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
18269         (branch_island_list): Delete.
18270         (branch_islands): Declare.
18271         (add_compiler_branch_island): Adjust for branch_islands instead of
18272         branch_island_list.
18273         (macho_branch_islands): Likewise.
18274         (no_previous_def): Likewise.
18275         (get_prev_label): Likewise.
18276
18277 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18278
18279         PR boehm-gc/34544
18280         * gthr-posix.h (__gthread_start): Delete.
18281         (__gthread_active_init): Use pthread_default_stacksize_np instead of
18282         pthread_create to determine if hpux pthreads are active.
18283         * gthr-posix95.h (__gthread_start): Delete.
18284         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
18285
18286 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
18287
18288         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
18289         _WIN64 not expanded.
18290
18291 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
18292             H.J. Lu  <hongjiu.lu@intel.com>
18293
18294         PR target/45213
18295         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
18296         to output 32bit SFmode immediate as 8 byte sign extended value.
18297
18298 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
18299
18300         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
18301         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
18302         (SUBWORD_BOOL_CAS): Likewise.
18303         (SUBWORD_SYNC_OP): Likewise.
18304         (SUBWORD_TEST_AND_SET): Likewise.
18305         (FETCH_AND_OP_WORD): Parenthesise INF_OP
18306         (SUBWORD_SYNC_OP): Likewise.
18307         (OP_AND_FETCH_WORD): Likewise.
18308
18309 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18310
18311         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
18312         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
18313         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
18314         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
18315         generic part.
18316         (cortex_a9_sched_adjust_cost): New function.
18317         (xscale_sched_adjust_cost): New function.
18318         * config/arm/arm-protos.h (struct tune_params): New field
18319         sched_adjust_cost.
18320         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
18321
18322 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
18323
18324         PR target/44942
18325         * config/sparc/sparc.c (function_arg_advance): Always take into account
18326         the padding, if any.
18327
18328 2010-08-06  Richard Guenther  <rguenther@suse.de>
18329
18330         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
18331         (dump_lattice_value): Dump it.
18332         (get_default_value): Adjust.
18333         (get_constant_value): Likewise.
18334         (set_value_varying): Likewise.
18335         (set_lattice_value): Make sure to not go up the lattice
18336         with bitwise constant values.
18337         (get_value_for_expr): Handle ADDR_EXPRs.
18338         (value_to_double_int): New function.
18339         (get_value_from_alignment): Likewise.
18340         (do_dbg_cnt): Adjust.
18341         (ccp_lattice_meet): Handle partially constant values.
18342         (bit_value_unop_1): New function.
18343         (bit_value_binop_1): Likewise.
18344         (bit_value_unop): Likewise.
18345         (bit_value_binop): Likewise.
18346         (evaluate_stmt): Track partially constant values if
18347         flag_tree_bit_ccp is set.
18348         (ccp_fold_stmt): Dump if we folded a predicate.
18349         (ccp_visit_stmt): Adjust.
18350         * common.opt (ftree-bit-ccp): New flag.
18351         * doc/invoke.texi (ftree-bit-ccp): Document.
18352         * opts.c (decode_options): Enable bit-CCP at -O1.
18353
18354 2010-08-06  Alan Modra  <amodra@gmail.com>
18355
18356         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
18357         and -mrelocatable-lib description.
18358
18359 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
18360
18361         From Martin Thuresson  <martint@google.com>
18362         * postreload.c (reload_cse_simplify_operands): Use
18363         SET_REGNO_RAW instead of SET_REGNO.
18364         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
18365         SET_REGNO.
18366         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
18367         instead of SET_REGNO.
18368         * rtl.h (SET_REGNO_RAW): New macro.
18369
18370 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
18371
18372         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
18373         computations.  Fix formatting issues.
18374         (num_sign_bit_copies1): Likewise.
18375         (canonicalize_condition): Likewise.
18376
18377 2010-08-05  Richard Henderson  <rth@redhat.com>
18378
18379         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
18380         (floor_log2): Use clz_hwi.
18381         (exact_log2): Use ctz_hwi.
18382         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
18383         * builtins.c (fold_builtin_bitop): Use them.
18384         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
18385         * combine.c (get_pos_from_mask): Use ctz_hwi.
18386         * double-int.c (double_int_ctz): Likewise.
18387         * explow.c (force_reg): Likewise.
18388         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
18389
18390 2010-08-05  Richard Henderson  <rth@redhat.com>
18391
18392         PR target/45189
18393         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
18394         the alignment constant is properly sign-extended.
18395
18396 2010-08-05  Richard Guenther  <rguenther@suse.de>
18397
18398         * expr.c (store_expr): Use emit_block_move only if both
18399         source and target are MEMs.  Use store_bit_field if only
18400         the target is a MEM.
18401
18402 2010-08-05  Richard Henderson  <rth@redhat.com>
18403
18404         PR debug/45188
18405         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
18406         (INCOMING_RETURN_ADDR_RTX): Likewise.
18407         (dwarf2out_do_frame): Remove conditional compilation.
18408         (dwarf2out_frame_init): Likewise.
18409
18410 2010-08-05  Nicolas Setton  <setton@adacore.com>
18411
18412         * gcov.c (flag_display_progress): New static variable.
18413         (main): Display progress info on standard output if requested.
18414         (options): Add -d/--display-progress.
18415         (print_usage): Print them.
18416         (process_args): Handle them.
18417         * doc/gcov.texi: Document them.
18418
18419 2010-08-05  Martin Jambor  <mjambor@suse.cz>
18420
18421         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
18422         (ipcp_insert_stage): Redirect only edges not flagged with
18423         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
18424         discovered constants.
18425
18426 2010-08-05  Martin Jambor  <mjambor@suse.cz>
18427
18428         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
18429         (struct ipa_param_descriptor): New fields types and
18430         cannot_devirtualize.
18431         (ipa_param_cannot_devirtualize_p): New function.
18432         (ipa_param_types_vec_empty): Likewise.
18433         (ipa_make_edge_direct_to_target): Declare.
18434         * ipa-cp.c: Fixed first stage driver name in initial comment,
18435         described devirtualization there too.
18436         (ipcp_analyze_node): Call ipa_analyze_params_uses.
18437         (ipcp_print_all_lattices): Print devirtualization info.
18438         (ipa_set_param_cannot_devirtualize): New function.
18439         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
18440         lattice to BOTTOM.
18441         (ipcp_init_stage): Merged into...
18442         (ipcp_generate_summary): ...its caller.
18443         (ipcp_change_tops_to_bottom): Also process type lists.
18444         (ipcp_add_param_type): New function.
18445         (ipcp_copy_types): Likewise.
18446         (ipcp_propagate_types): Likewise.
18447         (ipcp_propagate_stage): Also propagate types.
18448         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
18449         Also return true if propagated types require it.
18450         (ipcp_update_callgraph): Dump redirection info.
18451         (ipcp_process_devirtualization_opportunities): New function.
18452         (ipcp_const_param_count): Include known type information.
18453         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
18454         on new node.  Fixed formatting.
18455         * ipa-prop.c (make_edge_direct_to_target): Renamed to
18456         ipa_make_edge_direct_to_target and changed all callers.  Made
18457         externally visible.
18458         (ipa_node_duplication_hook): Duplicate types vector.
18459         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
18460         redirect outgoing calls for which we can't get a decl from the
18461         statement.  Check that we can get a decl from the call statement.
18462         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
18463         ipa_analyze_params_uses only when ipa-cp is disabled.
18464         * tree-inline.c (get_indirect_callee_fndecl): Removed.
18465         (expand_call_inline): Do not call get_indirect_callee_fndecl.
18466         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
18467         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
18468
18469 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
18470
18471         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
18472         temporary. Emit move from temporary to accum, so REG_EQUAL note will
18473         be attached to this insn in correct mode.
18474
18475 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
18476
18477         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
18478         using REGNO of base_reg directly.
18479
18480 2010-08-05  Jie Zhang  <jie@codesourcery.com>
18481
18482         PR tree-optimization/45144
18483         * tree-sra.c (type_consists_of_records_p): Return false
18484         if the record contains bit-field.
18485
18486 2010-08-04  Richard Henderson  <rth@redhat.com>
18487
18488         * config/i386/i386.c (struct ix86_frame): Remove padding and
18489         to_allocate members.
18490         (ix86_compute_frame_layout): Don't store them.
18491         (ix86_can_use_return_insn_p): Use a more direct and more obviously
18492         correct condition for the position of the stack pointer.
18493         (ix86_expand_prologue): Compute remaining stack allocation based
18494         on the ultimate stack pointer offset.
18495         (ix86_expand_epilogue): Use more obvious expressions testing for
18496         the stack pointer already pointing to the saved registers.
18497
18498         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
18499         duplication deconstructing the frame pointer.  Simplify
18500         deallocation of the local stack frame.
18501
18502         * reg-notes.def (CFA_EXPRESSION): New.
18503         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
18504         (dwarf2out_frame_debug_cfa_expression): New.
18505         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
18506
18507         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
18508         * config/i386/i386.c (ix86_expand_prologue): Set it.
18509         (ix86_expand_epilogue): Clear it.
18510         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
18511         context, add REG_CFA_EXPRESSION notes.
18512
18513         * config/i386/i386.h (struct machine_frame_state): Rename from
18514         machine_cfa_state.  Add members tracking SP and FP regardless
18515         of the current CFA register.
18516         (ix86_cfa_state): Remove.
18517         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
18518         and sse_reg_save_offset members.
18519         (ix86_compute_frame_layout): Set them.
18520         (gen_push): Increment sp_offset too.
18521         (choose_baseaddr_len, choose_baseaddr): New.
18522         (ix86_emit_save_reg_using_mov): New.
18523         (ix86_emit_save_regs_using_mov): Use it.
18524         (ix86_emit_save_sse_regs_using_mov): Likewise.
18525         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
18526         compare vs the saved red_zone_offset.
18527         (pro_epilogue_adjust_stack): Adjust sp_offset.
18528         (ix86_adjust_stack_and_probe): Likewise.
18529         (ix86_expand_prologue): Set up, use, and validate the new
18530         frame_state_info members.  Use gen_frame_mem.
18531         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
18532         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
18533         new frame_state_info members.
18534         (ix86_emit_leave): Likewise.
18535         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
18536         out-of-range stack pointer offsets here.
18537         (ix86_emit_restore_sse_regs_using_mov): Likewise.
18538         (ix86_expand_epilogue): Use and validate the new frame_state_info
18539         members.  Break up and simplify the logic selecting the
18540         restore_regs_via_mov code path.  Ensure that there will be no
18541         out-of-range stack pointer offsets.
18542
18543         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
18544
18545         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
18546         argument name to reflect the expected tree; fix indentation.
18547         (ix86_asm_output_function_label): Output the entire 32-bit
18548         ms_hook here as bytes ...
18549         (ix86_expand_prologue): ... not here as insns.  Attach the
18550         unwind info for the ms_hook to a blockage insn.
18551         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
18552         (ix86_ms_bitfield_layout_p): Fix indentation.
18553         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
18554
18555         * config/i386/i386.c (ix86_using_red_zone): New.
18556         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
18557         ix86_expand_prologue, ix86_force_to_memory): Use it.
18558
18559         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
18560         saving the int registers.
18561
18562         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
18563         and DWARF2_UNWIND_INFO conditional compilation.
18564
18565 2010-08-04  Richard Henderson  <rth@redhat.com>
18566
18567         PR debug/45171
18568         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
18569         an is_naming_typedef_decl.
18570
18571 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
18572
18573         PR rtl-optimization/45162
18574         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
18575         * dce.c (word_dce_process_block): Likewise.
18576
18577 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
18578
18579         PR target/44583
18580         * config/ia64/constraints.md (Z): New.
18581         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
18582         (xfreg_or_signed_fp01_operand): New.
18583         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
18584         with fr_reg_or_signed_fp01_operand and constraint G with Z.
18585         (subsf3): Ditto.
18586         (*maddsf4): Ditto.
18587         (*msubsf4): Ditto.
18588         (adddf3): Ditto.
18589         (adddf3_trunc): Ditto.
18590         (subdf3): Ditto.
18591         (*subdf3_trunc): Ditto.
18592         (*madddf4): Ditto.
18593         (*madddf4_trunc): Ditto.
18594         (*msubdf4): Ditto.
18595         (*msubdf4_trunc): Ditto.
18596         (addxf3): Replace xfreg_or_fp01_operand with
18597         xfreg_or_signed_fp01_operand and constraint G with Z.
18598         (*addxf3_truncsf): Ditto.
18599         (*addxf3_truncdf): Ditto.
18600         (subxf3): Ditto.
18601         (*subxf3_truncsf): Ditto.
18602         (*subxf3_truncdf): Ditto.
18603         (*maddxf4): Ditto.
18604         (*maddxf4_truncsf): Ditto.
18605         (*maddxf4_truncdf): Ditto.
18606         (*msubxf4): Ditto.
18607         (*msubxf4_truncsf): Ditto.
18608         (*msubxf4_truncdf): Ditto.
18609
18610 2010-08-04  Richard Guenther  <rguenther@suse.de>
18611
18612         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
18613         if either alias-set is zero.
18614
18615 2010-08-04  Richard Guenther  <rguenther@suse.de>
18616
18617         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
18618         * tree-ssa-ccp.c: ... here.
18619         * tree-ssa-copy.c: ... and here.
18620         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
18621         value_range_t): Move ...
18622         * tree-vrp.c: ... here.
18623         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
18624         (substitute_and_fold): Adjust prototype.
18625         * tree-ssa-propagate.c (replace_uses_in): Adjust.
18626         (replace_phi_args_in): Likewise.
18627         (substitute_and_fold): Take callback to query lattice instead
18628         of pointer to lattice.  Replace SSA name defs with lattice
18629         values first.
18630         * tree-ssa-ccp.c (ccp_finalize): Adjust.
18631         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
18632         (get_value): New function.
18633         (fini_copy_prop): Adjust.
18634         * tree-vrp.c (vrp_finalize): Adjust.
18635
18636 2010-08-04  Richard Guenther  <rguenther@suse.de>
18637
18638         PR middle-end/45176
18639         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
18640         points-to set for original MEM_REF.
18641
18642 2010-08-04  Richard Guenther  <rguenther@suse.de>
18643
18644         * tree-ssa-ccp.c (get_constant_value): New function.
18645         (get_rhs_assign_op_for_ccp): Remove.
18646         (valueize_op): New function.
18647         (ccp_fold): Use get_constant_value and valueize_op.
18648         (fold_const_aggregate_ref): Likewise.
18649         (ccp_fold_stmt): Likewise.
18650         (visit_assignment): Simplify.
18651
18652 2010-08-04  Richard Guenther  <rguenther@suse.de>
18653
18654         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
18655         * double-int.h (double_int_ctz): Declare.
18656         * double-int.c (double_int_ctz): New function.
18657
18658 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
18659
18660         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
18661         Define.
18662         picochip_expand_movmemhi : Expand movmem pattern.
18663         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
18664         Declare.
18665         * config/picochip/picochip.md (movmemhi) : New pattern.
18666
18667 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
18668
18669         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
18670
18671 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
18672
18673         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
18674         NEG as operand of a MULT by merging it with the other operand.
18675         * combine.c (make_compound_operation): Use trunc_int_for_mode when
18676         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
18677         MULT.
18678         * config/arm/constraints.md (M): Examine only 32 bits of a
18679         HOST_WIDE_INT.
18680         * config/arm/predicates.md (power_of_two_operand): Likewise.
18681
18682 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18683
18684         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
18685         non-NOTE insns.
18686
18687 2010-08-03  Jan Hubicka  <jh@suse.cz>
18688
18689         * ipa-split.c (struct split_point): Add split_part_set_retval.
18690         (find_retval): Forward declare.
18691         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
18692         (consider_split): Compute current->split_part_set_retval.
18693         (visit_bb): Do not look into return value.
18694         (split_function): Handle !split_part_set_retval
18695
18696 2010-08-03  Martin Jambor  <mjambor@suse.cz>
18697
18698         * tree-sra.c (completely_scalarize_record): New parameter REF, create
18699         its own access->expr intead of using build_ref_for_offset.
18700
18701 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
18702
18703         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
18704         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
18705         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
18706         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
18707         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
18708         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
18709         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
18710         DEFAULT_SWITCH_TAKES_ARG.
18711         * config/rx/rx.opt (-patch=): Remove option.
18712         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
18713         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
18714         * doc/invoke.texi (RX Options): Remove -patch=.
18715         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
18716         (option_map): Remove --profile-blocks, --quiet and --silent.
18717
18718 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
18719
18720         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
18721         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
18722         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
18723         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
18724         Update calls to ix86_expand_compare and ix86_expand_branch.
18725         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
18726         ix86_expand_compare.
18727         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
18728         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
18729         Make static.
18730         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
18731         and ix86_compare_op1.  Update calls to ix86_expand_compare.
18732         (ix86_expand_int_movcc): Ditto.
18733         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
18734         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
18735         (ix86_expand_setcc): Ditto.
18736         (ix86_expand_compare): Remove prototype.
18737         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
18738         ix86_compare_op0 and ix86_compare_op1.  Update calls
18739         to ix86_expand_branch to directly pass operands[1] and operands[2].
18740         (cbranchxf4): Ditto.
18741         (cbranch<MODEF:mode>4): Ditto.
18742         (cbranchcc4): Ditto.
18743         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
18744         Update calls to ix86_expand_setcc to directly pass operands[2] and
18745         operands[3].
18746         (cstorexf4): Ditto.
18747         (cstore<MODEF:mode>4): Ditto.
18748         (cstorecc4): Ditto.
18749
18750 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
18751
18752         PR target/45063
18753         * caller-save.c (save_call_clobbered_regs): Remove regs from
18754         hard_regs_saved when they are set.
18755
18756 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
18757
18758         PR target/41089
18759         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
18760         as volatile.
18761
18762 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
18763
18764         * common.opt (ftree-loop-distribute-patterns): New.
18765         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
18766         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
18767         at -O3.
18768         * tree-data-ref.c (stores_zero_from_loop): New.
18769         * tree-data-ref.h (stores_zero_from_loop): Declared.
18770         * tree-loop-distribution.c (tree_loop_distribution): Call
18771         stores_zero_from_loop.
18772         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
18773
18774 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
18775
18776         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
18777         into account.
18778
18779         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
18780         * config/arm/arm.c (thumb1_code): New variable.
18781         (arm_override_options): Set it.
18782         (thumb1_final_prescan_insn): Keep track of condition code status.
18783         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
18784         jumps that depend on them.
18785         * config/arm/arm.h (thumb1_code): Declare variable.
18786         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
18787         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
18788         thumb1_cc_mode.
18789         (CC_STATUS_INIT): New macro.
18790         * config/arm/constraints.md (Pd): New constraint.
18791         * config/arm/predicates.md (noov_comparison_operator): New predicate.
18792         * config/arm/arm.md (is_thumb1): New define_attr.
18793         (conds): Set default to "clob" when generating Thumb1 code.
18794         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
18795         code are set.  Use two-operand assembly syntax.
18796         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
18797         pattern.
18798         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
18799         codes are set.  Use two-operand assembly syntax.
18800         (zero_extendhisi splitter): Remove constraints.
18801         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
18802         thumb1_movsf_insn): Set conds attribute as appropriate.
18803         (cbranchsi4_insn): Use condition code status from struct
18804         machine_function to determine whether the comparison can be eliminated.
18805         Discourage the alternative using high registers.
18806         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
18807         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
18808         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
18809         subsi3_cbranch): Delete.
18810         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
18811         one subtract and one cbranch insn.
18812
18813         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
18814         thumb2_movdf_soft_insn): Delete patterns.
18815         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
18816         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
18817         (pool_range, neg_pool_range): Use them to define defaults.
18818         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
18819         and allow for TARGET_32BIT.
18820
18821         PR target/40457
18822         * config/arm/arm.h (arm_regs_in_sequence): Declare.
18823         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
18824         load_multiple_sequence, store_multiple_sequence): Delete
18825         declarations.
18826         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
18827         declarations.
18828         * config/arm/ldmstm.md: New file.
18829         * config/arm/arm.c (arm_regs_in_sequence): New array.
18830         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
18831         CHECK_REGS.  All callers changed.
18832         If SAVED_ORDER is nonnull, copy the computed order into it.
18833         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
18834         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
18835         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
18836         If SAVED_ORDER is nonnull, copy the computed order into it.
18837         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
18838         like REGS.  Handle Thumb mode.
18839         (arm_gen_load_multiple_1): New function, broken out of
18840         arm_gen_load_multiple.
18841         (arm_gen_store_multiple_1): New function, broken out of
18842         arm_gen_store_multiple.
18843         (arm_gen_multiple_op): New function, with code from
18844         arm_gen_load_multiple and arm_gen_store_multiple moved here.
18845         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
18846         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
18847         changed.
18848         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
18849         * config/arm/predicates.md (commutative_binary_operator): New.
18850         (load_multiple_operation, store_multiple_operation): Handle more
18851         variants of these patterns with different starting offsets.  Handle
18852         Thumb-1.
18853         * config/arm/arm.md: Include "ldmstm.md".
18854         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
18855         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
18856         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
18857         peepholes): Delete.
18858         * config/arm/ldmstm.md: New file.
18859         * config/arm/arm-ldmstm.ml: New file.
18860
18861         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
18862         if statement which adds extra costs to frame-related expressions.
18863
18864 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18865
18866         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
18867
18868 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
18869
18870         PR target/45142
18871         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
18872         alternative 2.
18873         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
18874         split V4SI operands.
18875
18876 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
18877
18878         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
18879         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
18880         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
18881         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
18882
18883 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
18884
18885         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
18886         LOCAL_INCLUDE_DIR.
18887
18888 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
18889
18890         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
18891         used in the call to optab_for_tree_code.  Fix the second
18892         is_widening_mult_p call.  Check that both unwidened operands
18893         have the same sign.
18894
18895 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
18896
18897         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
18898
18899 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
18900
18901         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
18902
18903 2010-07-30  DJ Delorie  <dj@redhat.com>
18904
18905         * config/rx/predicates.md (rx_constshift_operand): New.
18906         * config/rx/rx.md (zs_cond): New.
18907         (cbranchsi4): Remove mode.
18908         (*cbranchsi4_<code>): Likewise.
18909         (*tstbranchsi4_<code>): New.
18910         (*tstbranchsi4r_<code>): New.
18911         (*tstbranchsi4m_eq): New.
18912         (*tstbranchsi4m_ne): New.
18913         (cbranchsf4): Remove mode.
18914         (*cbranchsf4_<code>): Likewise.
18915
18916 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
18917
18918         * rtlanal.c (simplify_subreg_regno): Don't treat
18919         HARD_FRAME_POINTER_REGNUM specially.
18920
18921 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
18922
18923         * common.opt (-G): Don't define option here.
18924         * config/g.opt: New.
18925         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
18926         rs6000/powerpc and score targets.
18927         * opts.c (common_handle_option): Don't handle -G here.
18928         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
18929         * config/frv/frv.c (frv_handle_option): Handle -G.
18930         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
18931         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
18932         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
18933         * config/mips/mips.c (mips_handle_option): Handle -G.
18934         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
18935         * config/score/score.c (score_handle_option): Handle -G.
18936
18937 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
18938
18939         * config/mmix/mmix.c: Include basic-block.h.
18940
18941 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
18942
18943         PR debug/45055
18944         PR rtl-optimization/45137
18945         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
18946         prototypes.
18947         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
18948         New functions.
18949         * combine.c (next_nonnote_nondebug_insn): Removed.
18950         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
18951         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
18952         * sched-deps.c (sched_analyze_insn): Likewise.
18953         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
18954         * rtlanal.c (canonicalize_condition): Likewise.
18955         * postreload.c (reload_combine_recognize_pattern): Likewise.
18956         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
18957
18958 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
18959
18960         * config/i386/i386.md (int_cond): Remove code iterator.
18961         (fp_cond): Ditto.
18962         (cbranch<mode>4): Use ordered_comparison_operator predicate
18963         for operator0.
18964         (cstore<mode>4): Ditto for operator1.
18965         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
18966         (add<mode>cc): ditto.
18967
18968 2010-07-30  Richard Guenther  <rguenther@suse.de>
18969
18970         PR middle-end/45141
18971         * expr.c (expand_expr_real_1): Check for not handled base address.
18972
18973 2010-07-30  Richard Guenther  <rguenther@suse.de>
18974
18975         * ipa-prop.c (ipa_modify_formal_parameters): Use
18976         build_distinct_type_copy.
18977
18978 2010-07-30  Anthony Green  <green@moxielogic.com>
18979
18980         * config/moxie/rtems.h: New file.
18981         * config.gcc: Add moxie-rtems support.
18982
18983 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
18984
18985         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
18986         df flags as in run_fast_df_dce.
18987
18988 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
18989
18990         Revert:
18991         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
18992
18993         * rtl.def (NOTE): Swap operands 4 and 5.
18994         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
18995         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
18996         Adjust accordingly.
18997         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
18998
18999 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
19000
19001         PR debug/45110
19002         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
19003         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
19004         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
19005         formal parameters.
19006         (gen_decl_die): Change return type to dw_die_ref, return what
19007         gen_formal_parameter_die returned.
19008
19009 2010-07-29  Martin Jambor  <mjambor@suse.cz>
19010
19011         * dbgcnt.def (eipa_sra): New counter.
19012         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
19013
19014 2010-07-29  Xinliang David Li  <davidxl@google.com>
19015
19016         PR bootstrap/45119
19017         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
19018         in revision 162652.
19019
19020 2010-07-29  Richard Guenther  <rguenther@suse.de>
19021
19022         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
19023         (TV_TREE_STORE_CCP): Likewise.
19024         (TV_TREE_REDPHI): Likewise.
19025
19026 2010-07-29  Richard Guenther  <rguenther@suse.de>
19027
19028         * double-int.h (double_int_and_not): New function.
19029         * combine.c (try_combine): Use it.
19030         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
19031
19032 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
19033
19034         PR rtl-optimization/42575
19035         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
19036         Argument AU removed.  All callers changed.  Ignore artificial refs.
19037         Use return value of df_word_lr_simulate_defs to decide whether an insn
19038         is necessary.
19039         (fast_dce): Rename arg to WORD_LEVEL.
19040         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
19041         static.
19042         (pass_fast_rtl_byte_dce): Delete.
19043         * dce.h (run_word_dce): Declare.
19044         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
19045         All callers changed.  Simplify code to only deal with two-word regs.
19046         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
19047         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
19048         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
19049         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
19050         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
19051         (df_word_lr_mark_ref): Declare.
19052         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
19053         df_word_lr_simulate_uses): Declare or rename from byte variants.
19054         (df_byte_lr_simulate_artificial_refs_at_top,
19055         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
19056         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
19057         declarations.
19058         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
19059         (enum df_mm): Delete.
19060         * df-byte-scan.c: Delete file.
19061         * df-problems.c (df_word_lr_problem_data): Renamed from
19062         df_byte_lr_problem_data, all members deleted except for
19063         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
19064         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
19065         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
19066         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
19067         df_byte_lr_confluence_0): Delete functions.
19068         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
19069         callers changed.
19070         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
19071         Don't initialize members that were deleted, don't try to discover data
19072         about registers.  Ignore hard regs.
19073         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
19074         (df_word_lr_mark_ref): New function.
19075         (df_word_lr_bb_local_compute): Renamed from
19076         df_byte_bb_lr_local_compute; all callers changed.  Use
19077         df_word_lr_mark_ref.  Assert that artificial refs don't include
19078         pseudos.  Ignore hard registers.
19079         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
19080         Assert that exit block uses don't contain pseudos.
19081         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
19082         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
19083         callers changed.  Ignore hard regs.
19084         (df_word_lr_transfer_function): Renamed from
19085         df_byte_lr_transfer_function; all callers changed.
19086         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
19087         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
19088         changed.
19089         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
19090         callers changed.
19091         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
19092         confluence operator 0 set to NULL.
19093         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
19094         callers changed.
19095         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
19096         Return bool, true if bitmap changed or insn otherwise necessary.
19097         All callers changed.  Simplify using df_word_lr_mark_ref.
19098         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
19099         all callers changed.  Simplify using df_word_lr_mark_ref.
19100         * lower-subreg.c: Include "dce.h"
19101         (decompose_multiword_subregs): Call run_word_dce if df available.
19102         * Makefile.in (lower-subreg.o): Adjust dependencies.
19103         (df-byte-scan.o): Delete.
19104         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
19105
19106 2010-07-29  Richard Guenther  <rguenther@suse.de>
19107
19108         * tree.c (build_vector): Assert that the vector constant
19109         has enough elements.
19110         (build_vector_from_ctor): Pad with trailing zeros.
19111
19112 2010-07-29  Richard Guenther  <rguenther@suse.de>
19113
19114         PR tree-optimization/45120
19115         * tree-ssa-structalias.c (get_constraint_for_component_ref):
19116         Handle offset in DEREFs properly.
19117         (get_constraint_for_1): Handle MEM_REF offset properly.
19118
19119 2010-07-29  Richard Guenther  <rguenther@suse.de>
19120
19121         PR middle-end/45034
19122         * convert.c (convert_to_integer): Always use an unsigned
19123         type for narrowed negate and bitwise not.
19124
19125 2010-07-29  Ira Rosen  <irar@il.ibm.com>
19126
19127         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
19128         to outer loop when creating reduction epilogue for double reduction,
19129         and switch back to the inner loop when updating the phi nodes.
19130         Update uses of outer loop exit phi nodes in double reduction (instead
19131         of uses of reduction).
19132
19133 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
19134
19135         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
19136         popcount on power7 and parity on power6 systems.
19137         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
19138         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
19139         instructions.
19140
19141         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
19142         (UNSPEC_PARITY): Ditto.
19143         (SFDF): New iterator for SF/DF.
19144         (rreg2): New mode attribute for floating register constraint.
19145         (TARGET_FLOAT): New mode attribute for whether single/double float
19146         is supported.
19147         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
19148         pattern.
19149         (parity<mode>2_cmpb): New insn for parity on power6 and newer
19150         machines.
19151         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
19152         pattern.  Add support for fcpsgn instruction added in power6.
19153         (copysignsf3): Delete.
19154         (copysigndf3): Delete.
19155         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
19156         instead of if_then_else in RTL to avoid problems with -0.
19157
19158         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
19159         of if_then_else to mirror scalar code.
19160         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
19161         rs6000.md.
19162
19163         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
19164         instead of if_then_else.
19165
19166 2010-07-28  Xinliang David Li  <davidxl@google.com>
19167
19168         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
19169         (dump_cand): Dump var_before/after.
19170         (htab_inv_expr_eq): New function.
19171         (htab_inv_expr_hash): New function.
19172         (tree_ssa_iv_optimize_init): Support pseudo invariants.
19173         (add_candidate_1): consider base type precision.
19174         (set_use_iv_cost): New parameter.
19175         (adjust_setup_cost): Use profile information.
19176         (get_address_cost): Do not hard code width in computing address
19177         offset limits.
19178         (compare_aff_trees): New function.
19179         (get_loop_invariant_expr_id): New function.
19180         (get_computation_cost_at): New parameter and use profile information.
19181         (get_computation_cost): New parameter.
19182         (determine_use_iv_cost_generic): Pass new parameter.
19183         (determine_use_iv_cost_address): Ditto.
19184         (determine_use_iv_cost_condition): Ditto.
19185         (autoinc_possible_for_pair): Ditto.
19186         (determine_use_iv_costs): More dumps.
19187         (iv_ca_get_num_inv_exprs): New function.
19188         (iv_ca_recount_cost): Consider loop invariants in register pressure
19189         cost.
19190         (iv_ca_add_use): New parameter.
19191         (iv_ca_dump): Better dumping.
19192         (iv_ca_extend): New parameter.
19193         (try_add_cand_for): Attempt to get better partial solution.
19194         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
19195         (create_new-ivs): More dumps.
19196         (rewrite_use_compare): Ditto.
19197         (free_loop_data): More cleanup.
19198         (treee_ssa_iv_optimize_finalize): Ditto.
19199
19200 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
19201
19202         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
19203         * config/i386/i386.c (ix86_profile_before_prologue): New.
19204         (override_options): Add special handling for -mfentry.
19205         (ix86_function_regparm): Likewise.
19206         (ix86_function_sseregparm): Likewise.
19207         (ix86_frame_pointer_required): Likewise.
19208         (ix86_expand_prologue): Check for ms_hook_prologue.
19209         (x86_function_profiler): Adjust mcount output.
19210         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
19211         * config/i386/i386.opt (mfentry): New.
19212         * doc/invoke.texi (mfentry): Add documentation.
19213         * doc/tm.texi: Regenerated..
19214         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
19215         * final.c (final_start_function): Replace macro
19216         PROFILE_BEFORE_PROLOGUE by target hook.
19217         * function.c (thread_prologue_and_epilogue_insns): Likewise.
19218         * target.def (profile_before_prologue): New hook.
19219         * targhooks.c (default_profile_before_prologue): New.
19220         * targhooks.h (default_profile_before_prologue): New.
19221
19222 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
19223
19224         PR debug/45105
19225         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
19226
19227         PR debug/45103
19228         * dwarf2out.c (dwarf2out_var_location): Always consider
19229         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
19230
19231 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
19232
19233         PR rtl-optimization/45107
19234         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
19235
19236 2010-07-28  Richard Guenther  <rguenther@suse.de>
19237
19238         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
19239         (set_lattice_value): Do not query an old default value.
19240         (get_value_for_expr): New function.  Properly canonicalize
19241         float values.
19242         (ccp_visit_phi_node): Use it.
19243
19244 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
19245
19246         * config/arm/arm.c (arm_pcs_default): Remove static.
19247         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
19248         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
19249         (arm_pcs_default): Declare.
19250
19251 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
19252
19253         * config/rs6000/rs6000.c (rs6000_override_options):
19254         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
19255         ... to darwin_rs6000_override_options.
19256         (rs6000_return_in_memory): Update preceding comment for darwin
19257         64 bit ABI.  Use TARGET_MACHO inline.
19258         (rs6000_darwin64_struct_check_p): New.
19259         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
19260         (function_arg): Likewise.
19261         (rs6000_arg_partial_bytes): Likewise.
19262         (rs6000_function_value): Likewise.
19263
19264 2010-07-28  Andi Kleen  <ak@linux.intel.com>
19265
19266         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
19267
19268 2010-07-28  Richard Guenther  <rguenther@suse.de>
19269
19270         PR middle-end/44903
19271         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
19272         targets try harder to not generate unaligned accesses.
19273
19274 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
19275
19276         PR rtl-optimization/45101
19277         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
19278         for gcse-las.
19279
19280 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
19281
19282         PR tree-optimization/44885
19283         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
19284         with non-aliased component.
19285
19286 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
19287
19288         * config/darwin-driver.c (SWITCH_TAKES_ARG,
19289         WORD_SWITCH_TAKES_ARG): Remove.
19290         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
19291         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
19292         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
19293         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
19294         definitions from gcc.c.
19295         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
19296         defaults.h.
19297         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
19298         Move to defaults.h.
19299         * opts-common.c: Include tm.h.
19300         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
19301         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
19302         Handle more than one argument.  Set canonical_option_num_elements.
19303         (decode_cmdline_options_to_array): Set
19304         canonical_option_num_elements and trailing elements of
19305         canonical_option.
19306         * opts.h (struct cl_decoded_option): Allow four elements in
19307         canonical_option.  Add field canonical_option_num_elements.
19308         * Makefile.in (opts-common.o): Update dependencies.
19309
19310 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
19311
19312         PR middle-end/44790
19313         PR middle-end/44993
19314         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
19315         sure the base has address_mode before adding the offset.
19316
19317 2010-07-27  Xinliang David Li  <davidxl@google.com>
19318
19319         * tree-flow.h (create_mem_ref): Add one new parameter.
19320         * tree-ssa-address.c (create_mem_ref): New parameter.
19321         (addr_to_parts): Ditto.
19322         (move_variant_to_index): New function.
19323         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
19324
19325 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
19326
19327         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
19328         4 and 5.
19329         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
19330         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
19331         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
19332         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
19333         CODE_LABELs and NOTEs.
19334         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
19335         * combine.c (try_combine): Likewise.
19336         * ira.c (setup_prohibited_mode_move_regs): Likewise.
19337         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
19338
19339 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
19340
19341         * coretypes.h (struct cl_option_handlers): Declare.
19342         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
19343         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
19344         * langhooks-def.h (lhd_handle_option): Declare.
19345         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
19346         * langhooks.c (lhd_handle_option): New.
19347         * langhooks.h (struct lang_hooks): Update prototype and return
19348         value type of handle_option hook.
19349         * optc-gen.awk: Generate target_flags_explicit definition for the
19350         driver.
19351         * opts-common.c: Include diagnostic.h.
19352         (handle_option): Move from opts.c.  Update prototype and return
19353         value type.  Use handlers structure.
19354         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
19355         handlers structure.
19356         (set_option): Move from opts.c.
19357         * opts.c (common_handle_option): Update prototype and return value
19358         type.  Update calls to handle_option and enable_warning_as_error.
19359         (unknown_option_callback, post_handling_callback,
19360         lang_handle_option, target_handle_option): New.
19361         (handle_option, read_cmdline_option): Move to opts-common.c.
19362         (read_cmdline_options): Update prototype.  Update call to
19363         read_cmdline_option.
19364         (decode_options): Initialize and use handlers structure.
19365         (set_option): Move to opts-common.c.
19366         (enable_warning_as_error): Update prototype.  Update call to
19367         handle_option.
19368         * opts.h (struct cl_option_handler_func, struct
19369         cl_option_handlers): New.
19370         (handle_option, enable_warning_as_error): Update prototypes.
19371         (read_cmdline_option): Declare.
19372         * Makefile.in (opts-common.o): Update dependencies.
19373
19374 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19375
19376         * config/arm/arm.c (params.h): Include.
19377         (arm_override_options): Tune gcse-unrestricted-cost.
19378         * config/arm/t-arm (arm.o): Define dependencies.
19379
19380 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19381
19382         PR target/42495
19383         PR middle-end/42574
19384         * basic-block.h (get_dominated_to_depth): Declare.
19385         * dominance.c (get_dominated_to_depth): New function, use
19386         get_all_dominated_blocks as a base.
19387         (get_all_dominated_blocks): Use get_dominated_to_depth.
19388
19389         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
19390         (hoist_exprs): Remove.
19391         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
19392         (compute_code_hoist_vbeinout): Add debug print outs.
19393         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
19394
19395         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
19396         quadratic behavior.
19397         * params.h (MAX_HOIST_DEPTH): New macro.
19398         * doc/invoke.texi (max-hoist-depth): Document.
19399
19400 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19401
19402         PR rtl-optimization/40956
19403         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
19404         constants.
19405
19406 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19407
19408         PR target/42495
19409         PR middle-end/42574
19410         * config/arm/arm.c (legitimize_pic_address): Use
19411         gen_calculate_pic_address pattern to emit calculation of PIC address.
19412         (will_be_in_index_register): New function.
19413         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
19414         (thumb1_legitimate_address_p): Use it provided !strict_p.
19415         * config/arm/arm.md (calculate_pic_address): New expand and split.
19416
19417 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19418
19419         PR target/42495
19420         PR middle-end/42574
19421         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
19422         * config/arm/arm.md (define_split "J", define_split "K"): Make
19423         IRA/reload friendly.
19424
19425 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19426
19427         * gcse.c (insert_insn_end_basic_block): Update signature, remove
19428         unused checks.
19429         (pre_edge_insert, hoist_code): Update.
19430
19431 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19432
19433         PR target/42495
19434         PR middle-end/42574
19435         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
19436
19437 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19438
19439         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
19440
19441 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19442
19443         PR rtl-optimization/40956
19444         PR target/42495
19445         PR middle-end/42574
19446         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
19447         for hoisting.
19448         (hoist_code): Count occurences in current block too.
19449
19450 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19451
19452         * gcse.c (struct expr:max_distance): New field.
19453         (doing_code_hoisting_p): New static variable.
19454         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
19455         simple expressions, don't change behavior for PRE.  Set max_distance.
19456         (insert_expr_in_table): Set new max_distance field.
19457         (hash_scan_set): Update.
19458         (hoist_expr_reaches_here_p): Stop search after max_distance
19459         instructions.
19460         (find_occr_in_bb): New static function.  Use it in ...
19461         (hoist_code): Calculate sizes of basic block before any changes are
19462         done.  Pass max_distance to hoist_expr_reaches_here_p.
19463         (one_code_hoisting_pass): Set doing_code_hoisting_p.
19464
19465         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
19466         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
19467         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
19468         macros.
19469         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
19470         Document.
19471
19472 2010-07-27  Jeff Law  <law@redhat.com>
19473             Maxim Kuvyrkov  <maxim@codesourcery.com>
19474
19475         * gcse.c (compute_transpout, transpout): Remove, move logic
19476         to prune_expressions.
19477         (compute_pre_data): Move pruning of trapping expressions ...
19478         (prune_expressions): ... here.  New static function.
19479         (compute_code_hoist_data): Use it.
19480         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
19481
19482 2010-07-27  Xinliang David Li  <davidxl@google.com>
19483
19484         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
19485         (rewrite_use_address): Adjust iv update position when needed.
19486
19487 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19488
19489         * dbgcnt.def (hoist_insn): New debug counter.
19490         * gcse.c (hoist_code): Use it.
19491
19492 2010-07-27  Xinliang David Li  <davidxl@google.com>
19493
19494         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
19495         (niter_for_single_dom_exit): Passes additional parameter.
19496         (iv_period): Fix comments.
19497         (may_eliminate_iv): Handles multiple exit loops properly.
19498         (free_tree_niter_desc): New function.
19499         (free_loop_data): Frees up loop iteration descriptors.
19500
19501 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
19502
19503         PR target/44542
19504         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
19505         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
19506         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
19507         (expand_one_var): Don't consider DECL_ALIGN for variables for
19508         which expand_one_stack_var_at has been already called.
19509
19510         PR testsuite/44701
19511         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
19512         constraints on IA-64.
19513
19514 2010-07-27  Jie Zhang  <jie@codesourcery.com>
19515
19516         PR target/44290
19517         Revert:
19518         2010-07-23  Jie Zhang  <jie@codesourcery.com>
19519
19520         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
19521         false if ! tree_versionable_function_p.
19522
19523 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
19524
19525         * dwarf2out.c (add_data_member_location_attribute): Use
19526         add_AT_unsigned instead of add_AT_int if offset is non-negative.
19527
19528 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
19529
19530         * postreload.c (try_replace_in_use): New static function.
19531         (reload_combine_recognize_const_pattern): Use it here.  Allow
19532         substituting into a final add insn, and substituting into a memory
19533         reference in an insn that sets the reg.
19534
19535 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
19536
19537         * common.opt (o): Add MissingArgError.
19538         * doc/options.texi (MissingArgError): Document.
19539         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
19540         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
19541         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
19542         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
19543         * langhooks.h (struct lang_hooks): Remove missing_argument.
19544         * optc-gen.awk: Handle MissingArgError and output new structure
19545         field initializers.
19546         * opts.c (read_cmdline_option): Use missing_argument_error field
19547         instead of missing_argument langhook.
19548         * opts.h (struct cl_option): Add missing_argument_error field.
19549         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
19550
19551 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
19552
19553         PR target/29090
19554         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
19555         Darwin64 ABI, for zero-sized objects.
19556
19557 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
19558
19559         PR target/35491
19560         PR target/29090
19561
19562         Merge from Apple local 4.2.1.
19563         2005-05-11  Stan Shebs  <shebs@apple.com>
19564         Fix 64-bit varargs for Darwin (Radar 4028089).
19565         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
19566         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
19567         Add argument, add case for 8-byte register half-filled with a float.
19568         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
19569         single-precision floats specially.
19570
19571 2010-07-27  Ira Rosen  <irar@il.ibm.com>
19572
19573         PR tree-optimization/44152
19574         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
19575         complex numbers for further check.
19576         (vect_supported_load_permutation_p): Check nodes with
19577         complex numbers.
19578
19579 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
19580
19581         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
19582         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
19583         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
19584         (LANG_HOOKS_INITIALIZER): Add new hooks.
19585         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
19586         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
19587         and complain_wrong_lang_p.  Update init_options prototype.
19588         * c-objc-common.c (c_initialize_diagnostics): First call
19589         c_common_initialize_diagnostics.
19590         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
19591         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
19592         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
19593         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
19594         (hook_uint_void_0): New.
19595         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
19596         (hook_uint_void_0): New.
19597         * opts-common.c (decode_cmdline_option,
19598         decode_cmdline_options_to_array): Also fill in canonical_option field.
19599         * opts.c (complain_wrong_lang): Use langhook to determine whether
19600         to complain instead of special-casing LTO.
19601         (decode_options): Separate lang_mask determination with
19602         option_lang_mask hook from call of init_options hook.
19603         * opts.h (struct cl_decoded_option): Add canonical_option.
19604
19605 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
19606
19607         PR tree-optimization/45083
19608         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
19609
19610 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
19611
19612         * postreload.c (reload_combine_recognize_const_pattern): Move test
19613         for limiting the insn movement to the right scope.
19614
19615         PR rtl-optimization/45051
19616         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
19617         than reg_mentioned_p.
19618
19619 2010-07-26  Richard Henderson  <rth@redhat.com>
19620
19621         PR target/44132
19622         * tree-emutls.c: New file.
19623         * Makefile.in (OBJS-common): Add it.
19624         * tree-pass.h (pass_ipa_lower_emutls): Declare.
19625         * passes.c (init_optimization_passes): Add it.
19626
19627         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
19628         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
19629         * expr.c (emutls_var_address): Delete.
19630         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
19631         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
19632         (emutls_finish): Delete.
19633         * toplev.c (compile_file): Don't call it.
19634         * tree.h (emutls_decl): Delete.
19635         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
19636         (emutls_finish, emutls_finalize_control_var): Delete.
19637         (emutls_object_type): Move to tree-emutls.c.
19638         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
19639         default_emutls_var_fields, get_emutls_object_type,
19640         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
19641         default_emutls_var_init): Likewise.
19642         (get_variable_section): Don't special case emutls.
19643         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
19644         default_elf_select_section, default_unique_section,
19645         default_encode_section_info): Likewise.
19646         * varpool.c (decide_is_variable_needed): Likewise.
19647         * gimple-iterator.c (update_call_edge_frequencies): New
19648         (gsi_insert_on_edge_immediate): Use it.
19649         (gsi_insert_seq_on_edge_immediate): Likewise.
19650         (gsi_commit_one_edge_insert): Likewise.
19651
19652         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
19653         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
19654         (x86_64_elf_unique_section): Likewise.
19655
19656 2010-07-26  Jan Hubicka  <jh@suse.cz>
19657
19658         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
19659         GTY((skip)).
19660
19661 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
19662
19663         * target.def (output_source_filename): New hook.
19664         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
19665         * doc/tm.texi: Regenerate.
19666         * toplev.c (output_file_directive) Remove function.
19667         * toplev.h (output_file_directive) Remove.
19668         * output.h (default_asm_output_source_filename,
19669         output_file_directive): Declare.
19670         * varasm.h (default_asm_output_source_filename,
19671         output_file_directive): New functions.
19672
19673         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
19674         * config/mips/mips-protos.h (mips_output_filename): Remove.
19675         * config/mips/mips.c (mips_output_filename): Make Static.
19676         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
19677
19678 2010-07-26  Richard Guenther  <rguenther@suse.de>
19679
19680         PR tree-optimization/43784
19681         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
19682         if the destination is used by the call.
19683
19684 2010-07-26  Richard Guenther  <rguenther@suse.de>
19685
19686         PR middle-end/45073
19687         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
19688         SSA updating on being in SSA form.
19689
19690 2010-07-26  Richard Guenther  <rguenther@suse.de>
19691
19692         PR middle-end/45056
19693         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
19694
19695 2010-07-26  Richard Guenther  <rguenther@suse.de>
19696
19697         PR tree-optimization/45071
19698         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
19699         adjust op->opcode.
19700
19701 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
19702
19703         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
19704         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
19705         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
19706         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
19707         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
19708         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
19709         save_r31, return_r31, save_interrupt, return_interrupt,
19710         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
19711         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
19712         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
19713         new ABI requirements.
19714         (save_r6_r9, L_callt_save_r6_r9): Remove.
19715         * config/v850/predicates.md (even_reg_operand, disp23_operand,
19716         const_float_1_operand const_float_0_operand): New Predicates.
19717         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
19718         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
19719         * config/v850/t-v850: Update multilibs for new target variants.
19720         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
19721         * config/v850/t-v850e: Likewise.
19722         * config/v850/v850.c (v850_issue_rate): New.
19723         (v850_strict_argument_naming): New.
19724         (function_arg): Modify to generate a different ABI.
19725         (print_operand): Update case 'z' to support float modes.
19726         (output_move_single): Modify to generate appropriate and better
19727         assembly.
19728         (v850_float_z_comparison_operator, v850_select_cc_mode,
19729         v850_float_nz_comparison_operator,  v850_gen_float_compare,
19730         v850_gen_compare): New functions to support comparison of float values.
19731         (ep_memory_offset): Add support for V850E2 targets.
19732         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
19733         (INTERRUPT_REGPARM_NUM): Remove.
19734         (compute_register_save_size): Add extra case to save/restore long call.
19735         (use_prolog_function): New function to support prologue.
19736         (expand_prologue): Add support for V850E2 targets and modified
19737         as per the current ABI requirements.
19738         (expand_epilogue): Likewise.
19739         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
19740         (construct_save_jarl): Likewise.
19741         (construct_dispose_instruction): Update as per the current ABI
19742         requirements.
19743         (construct_prepare_instruction): Likewise.
19744         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
19745         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
19746         (CPP_SPEC): Updated to support v850e2 targets.
19747         (STRICT_ALIGNMENT): Modified.
19748         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
19749         (FIXED_REGISTERS): Likewise.
19750         (CALL_USED_REGISTERS): Likewise.
19751         (CONDITIONAL_REGISTER_USAGE): Updated.
19752         (HARD_REGNO_MODE_OK): Updated.
19753         (reg_class): Updated to add even registers.
19754         (REG_CLASS_NAMES): Likewise.
19755         (REG_CLASS_CONTENTS): Likewise.
19756         (REGNO_REG_CLASS): Updated for CC registers.
19757         (REG_CLASS_FROM_LETTER): Added support for even registers.
19758         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
19759         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
19760         ARG_POINTER_REGNUM): Updated.
19761         (FUNCTION_ARG_ADVANCE): Define.
19762         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
19763         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
19764         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
19765         (GO_IF_LEGITIMATE_ADDRESS): Updated.
19766         (SELECT_CC_MODE): Define.
19767         (REGISTER_NAMES): Updated to add psw and fcc registers.
19768         (ADDITIONAL_REGISTER_NAMES): Updated.
19769         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
19770         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
19771         * config/v850/v850.md (define_constants): Define new constants.
19772         (type): Update store,bit1,macc,div,fpu and single attributes.
19773         (cpu): New attribute.
19774         (cc): Add set_z attribute.
19775         (unsign23byte_load, sign23byte_load, unsign23hword_load,
19776         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
19777         23word_store): New instructions for 23-bit displacement load and store.
19778         (movqi_internal, movhi_internal): Update the attributes.
19779         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
19780         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
19781         the attributes.
19782         (v850_tst1): Modified using CC_REGNUM.
19783         (tstsi): Remove.
19784         (cmpsi): Modified as define_expand from define_insn.
19785         (cmpsi_insn, cmpsf, cmpdf): New instructions.
19786         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
19787         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
19788         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
19789         one_cmplsi2): Clobber the CC_REGNUM register.
19790         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
19791         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
19792         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
19793         (setf_insn, set_z_insn, set_nz_insn): New instructions for
19794         v850e2v3 target.
19795         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
19796         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
19797         targets.
19798         (sasf_1, sasf_2): Remove.
19799         (sasf): New instruction.
19800         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
19801         targets. CC_REGNUM register is clobbered and attributes are
19802         updated.
19803         (branch_z_normal, branch_z_invert, branch_nz_normal,
19804         branch_nz_invert): New branch related instructions.
19805         (jump): Updated the attributes.
19806         (switch): Update to support new targets. CC_REGNUM register is
19807         clobbered and attributes are updated.
19808         (call_internal_short, call_internal_long, call_value_internal_short,
19809         call_value_internal_long): Updated the attributes.
19810         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
19811         clobbered and attributes are updated.
19812         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
19813         Update to support new targets. CC_REGNUM register is clobbered.
19814         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
19815         instructions.
19816         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
19817         are updated.
19818         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
19819         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
19820         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
19821         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
19822         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
19823         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
19824         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
19825         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
19826         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
19827         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
19828         point instructions defined for V850e2v3 target.
19829         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
19830         Add support for V850E2 targets and CC_REGNUM register is clobbered.
19831         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
19832         support for new targets.
19833         * config/v850/v850-modes.def: New file.
19834         * config/v850/v850.opt(mstrict-align): Remove.
19835         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
19836         mv850e2v3): New command line options for V850.
19837         * config.gcc: Update the newly added files.
19838         * doc/invoke.texi: Update the newly added command line options for
19839         V850 target.
19840
19841 2010-07-26  Richard Guenther  <rguenther@suse.de>
19842
19843         PR tree-optimization/45052
19844         * ipa-pure-const.c (check_stmt): Check volatileness.
19845
19846 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
19847
19848         PR target/44707
19849         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
19850         * config/sparc/sparc.c: Include reload.h.
19851         (legitimize_tls_address): Rename into...
19852         (sparc_legitimize_tls_address): ...this.
19853         (legitimize_pic_address): Rename into...
19854         (sparc_legitimize_pic_address): ...this.
19855         (sparc_expand_move): Adjust to above renaming.
19856         (sparc_tls_referenced_p): Likewise.
19857         (sparc_legitimize_tls_address): Likewise.
19858         (sparc_legitimize_pic_address): Likewise.
19859         (sparc_legitimize_address): Likewise.
19860         (sparc_output_mi_thunk): Likewise.
19861         (sparc_legitimize_reload_address): New global function.  Recognize
19862         (lo_sum (high ...) ...) patterns generated by earlier passes.
19863         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
19864
19865 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
19866
19867         PR target/44484
19868         * config/sparc/predicates.md (memory_reg_operand): Delete.
19869         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
19870         (*sync_compare_and_swap): Encode the address form in the pattern.
19871         (*sync_compare_and_swapdi_v8plus): Likewise.
19872
19873 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
19874
19875         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
19876         Streamline paragraph on compatibility with the system compiler.
19877
19878 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
19879
19880         PR middle-end/45035
19881         * alias.c (true_dependence_1): Fix thinko in merge of old
19882         true_dependence and canon_true_dependence.
19883
19884 2010-07-23  Jan Hubicka  <jh@suse.cz>
19885
19886         * lto-streamer-out.c (write_symbol): Fix visibilities of external
19887         references.
19888
19889 2010-07-23  Le-Chun Wu  <lcwu@google.com>
19890
19891         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
19892         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
19893         and an unnecessary assignment.
19894         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
19895         self-assign warning.
19896         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
19897         unnecessary self-init.
19898
19899 2010-07-23  Richard Guenther  <rguenther@suse.de>
19900
19901         PR lto/43071
19902         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
19903         for -flto and -fwhopr.
19904
19905 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
19906
19907         PR target/41943
19908         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
19909         (stmp-int-hdrs): Prefix/postfix headers by include_next.
19910         * config.gcc (user_headers_inc_next_pre): New.
19911         (user_headers_inc_next_post): Likewise.
19912         (*-w64-mingw*): Use for float.h post-fixing, and for
19913         stddef.h/stdarg.h pre-fixing by include_next.
19914         * configure.ac (user_headers_inc_next_post): New.
19915         (user_headers_inc_next_pre): New.
19916         * configure: Regenerated.
19917
19918 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19919
19920         * configure.ac: Don't disable TLS on Solaris 8/9 by default
19921         Set tga_func for Solaris 2/x86 resp. SPARC.
19922         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
19923         (LIB_THREAD_LDFLAGS_SPEC): Define.
19924         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
19925         * configure: Regenerate.
19926         * config.in: Regenerate.
19927         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
19928         -pthread, -threads, LIB_TLS_SPEC with -pthread.
19929         * doc/install.texi (Specific, *-*-solaris2*): Document use of
19930         alternate thread libraries on Solaris 8.
19931         Document TLS patch requirements.
19932         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
19933         Document tls.
19934
19935         PR target/18788
19936         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
19937         -shared.
19938
19939 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
19940
19941         * tree.h (struct tree_base): Add nameless_flag bitfield.
19942         (TYPE_NAMELESS, DECL_NAMELESS): Define.
19943         * omp-low.c (create_omp_child_function, scan_omp_parallel,
19944         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
19945         DECL_ARTIFICIAL where needed.
19946         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
19947         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
19948         has DECL_NAMELESS set.
19949
19950 2010-07-23  Martin Jambor  <mjambor@suse.cz>
19951
19952         PR tree-optimization/44915
19953         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
19954         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
19955         (analyze_function): Likewise.
19956
19957 2010-07-23  Martin Jambor  <mjambor@suse.cz>
19958
19959         PR tree-optimization/44914
19960         * tree-sra.c (sra_modify_function_body): Return true if CFG was
19961         changed, add purging dead eh edges.
19962         (ipa_sra_modify_function_body): Return true if CFG was changed,
19963         simplify purging dead eh edges.
19964         (modify_function): Return true if CFG was changed.
19965         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
19966         was changed.
19967         (ipa_early_sra): Likewise.
19968
19969 2010-07-23  Jie Zhang  <jie@codesourcery.com>
19970
19971         PR target/44290
19972         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
19973         if "naked".
19974         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
19975         false if ! tree_versionable_function_p.
19976
19977 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
19978
19979         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
19980         * ipa-pure-const.c (special_builtlin_state): Remove
19981         BUILT_IN_ARGS_INFO case.
19982         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
19983         * builtins.c (expand_builtin): Likewise.
19984         (expand_builtin_args_info): Remove.
19985         * doc/tm.texi (__builtin_args_info): Remove.
19986         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
19987         * doc/tm.text.in: Likewise.
19988
19989 2010-07-23  Richard Guenther  <rguenther@suse.de>
19990
19991         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
19992         (lto_symtab_merge_decls_2): Likewise.
19993         * tree-ssa.c (useless_type_conversion_p): Likewise.
19994         * lto-streamer-in.c (input_gimple_stmt): Likewise.
19995         * gimple.c (gtc_visited2, gtc_ob2): Remove.
19996         (struct type_pair_d): Make same_p an array indexed by mode.
19997         Update comment.
19998         (lookup_type_pair): Update initialization.
19999         (struct sccs): Adjust same_p type.
20000         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
20001         Adjust.
20002         (print_gimple_types_stats): Likewise.
20003         * gimple.h (enum gtc_mode): New.
20004         (gimple_types_compatible_p): Adjust prototype.
20005
20006 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
20007
20008         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
20009         again after processing insn.
20010
20011 2010-07-23  Jie Zhang  <jie@codesourcery.com>
20012
20013         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
20014         proper words when !tree_versionable_function_p.
20015
20016 2010-07-23  Richard Guenther  <rguenther@suse.de>
20017
20018         PR tree-optimization/45037
20019         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
20020
20021 2010-07-23  Jie Zhang  <jie@codesourcery.com>
20022
20023         * doc/extend.texi: Remove IP2K from the description of naked attribute.
20024         Add MCORE instead.
20025
20026 2010-07-10  Andi Kleen  <ak@linux.intel.com>
20027
20028         PR lto/44992
20029         * lto-opts.c (lto_write_options): Add NULL file_data argument to
20030         lto_get_section_name.
20031         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
20032         * lto-streamer-out.c (produce_asm): Likewise.
20033         (copy_function): Likewise.
20034         (produce_symtab): Likewise.
20035         (produce_asm_for_decls): Likewise.
20036         * lto-streamer.c (lto_get_section_name): Add file_data argument.
20037         Rewrite to add random postfix to LTO sections.
20038         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
20039         (lto_get_section_name): Add file_data argument to prototype.
20040
20041 2010-07-10  Andi Kleen  <ak@linux.intel.com>
20042
20043         * lto-section-in.c (lto_section_name): Synchronize names
20044         with lto_get_section_name.
20045
20046 2010-07-10  Andi Kleen  <ak@linux.intel.com>
20047
20048         * lto-opts.c (lto_read_file_options): Check for missing section.
20049
20050 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
20051
20052         * ira.c (check_allocation): Correctly handle the case where an allocno
20053         with two objects was allocated to a single reg.
20054
20055 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
20056
20057         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
20058         (is_widening_mult_p): Likewise.
20059         (convert_to_widen): Use them.
20060         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
20061         well as integer ones.
20062
20063 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
20064
20065         * alias.c (true_dependence_1): New function, merged version of
20066         true_dependence and canon_true_dependence.
20067         (true_dependence): Simplify.
20068         (canon_true_dependence): Simplify.
20069
20070 2010-07-22  Richard Henderson  <rth@redhat.com>
20071
20072         PR target/45027
20073         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
20074         of V4SFmode for the SSE saves; increase stack alignment if needed.
20075         (ix86_gimplify_va_arg): Don't increase stack alignment here.
20076
20077 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
20078
20079         PR bootstrap/45028
20080         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
20081         call cprop_find_used_regs again via note_uses.
20082
20083 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
20084
20085         * alias.c (get_alias_set): Fix formatting issues.
20086
20087 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
20088
20089         PR middle-end/44878
20090         * stmt.c (expand_value_return):  Call promote_function_mode with
20091         a for_return argument of 2 when returning by reference.
20092
20093 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
20094
20095         PR debug/45024
20096         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
20097         unit DIE if we can find the scope DIE.
20098
20099 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
20100
20101         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
20102         changed.  Initialize OBJECT_SUBWORD.
20103         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
20104         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
20105         all callers changed.
20106         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
20107         (finish_allocno): Likewise.
20108         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
20109         (remove_low_level_allocnos): Likewise.
20110         (update_bad_spill_attribute): Likewise.
20111         (setup_min_max_allocno_live_range_point): Likewise.
20112         (sort_conflict_id_map): Likewise.
20113         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
20114         (ior_hard_reg_conflicts): New function.
20115         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
20116         (compress_conflict_vecs): Iterate over objects, not allocnos.
20117         (ira_add_live_range_to_object): New function.
20118         (object_range_compare_func): Renamed from allocno_range_compare_func.
20119         All callers changed.
20120         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
20121         subobjects, widen the min/max range of the lowest-order object to
20122         potentially include all other such low-order objects.
20123         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
20124         (check_allocation): Likewise.  Use more fine-grained tests for register
20125         conflicts.
20126         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
20127         allocno subobjects.
20128         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
20129         choices about which bits to set in each set.  Don't use
20130         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
20131         using the multiple sets we computed.
20132         (push_allocno_to_stack): Iterate over allocno subobjects.
20133         (all_conflicting_hard_regs_coalesced): New static function.
20134         (setup_allocno_available_regs_num): Use it.
20135         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
20136         subobjects.
20137         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
20138         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
20139         by ALLOCNO_NUM_OBJECTS.
20140         (calculate_spill_cost): Likewise.
20141         (color_pass): Express if statement in a more normal way.
20142         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
20143         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
20144         (setup_slot_coalesced_allocno_live_ranges): Likewise.
20145         (allocno_reload_assign): Likewise.
20146         (ira_reassign_pseudos): Likewise.
20147         (fast_allocation): Likewise.
20148         * ira-conflicts.c (build_conflict_bit_table): Likewise.
20149         (print_allocno_conflicts): Likewise.
20150         (ira_build_conflicts): Likewise.
20151         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
20152         callers changed.  Test subword 0 of each allocno for conflicts.
20153         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
20154         callers changed.  Iterate over allocno subobjects.
20155         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
20156         * ira-int.h (struct ira_allocno): New member: num_objects.
20157         Rename object to objects and change it into an array.
20158         (ALLOCNO_OBJECT): Add new argument N.
20159         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
20160         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
20161         (ior_hard_reg_conflicts): Declare.
20162         (ira_add_live_range_to_object): Declare.
20163         (ira_allocno_object_iterator): New.
20164         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
20165         (FOR_EACH_ALLOCNO_OBJECT): New macro.
20166         * ira-lives.c (objects_live): Renamed from allocnos_live; all
20167         uses changed.
20168         (allocnos_processed): New sparseset.
20169         (make_object_born): Renamed from make_allocno_born; take an
20170         ira_object_t argument.  All callers changed.
20171         (make_object_dead): Renamed from make_allocno_dead; take an
20172         ira_object_t argument.  All callers changed.
20173         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
20174         All callers changed.
20175         (mark_pseudo_regno_live): Iterate over allocno subobjects.
20176         (mark_pseudo_regno_dead): Likewise.
20177         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
20178         functions.
20179         (mark_ref_live): Detect subword accesses and call
20180         mark_pseudo_regno_subword_live as appropriate.
20181         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
20182         (process_bb_nodes_live): Deal with object-related updates first; set
20183         and test bits in allocnos_processed to avoid computing allocno
20184         statistics more than once.
20185         (create_start_finish_chains): Iterate over objects, not allocnos.
20186         (print_object_live_ranges): New function.
20187         (print_allocno_live_ranges): Use it.
20188         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
20189         and objects_live.
20190
20191 2010-07-22  Richard Guenther  <rguenther@suse.de>
20192
20193         PR lto/42451
20194         * gimple.c (gtc_next_dfs_num): New global.
20195         (struct sccs): Make value a union, add integer same_p member.
20196         (gtc_visit): New function.
20197         (gimple_types_compatible_p_1): New function, split out from ...
20198         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
20199         (iterative_hash_gimple_type): Adjust for sccs change.
20200
20201 2010-07-22  Martin Jambor  <mjambor@suse.cz>
20202
20203         PR tree-optimization/44891
20204         * tree-sra.c: Include gimple-pretty-print.h.
20205         (replace_uses_with_default_def_ssa_name): Renamed to
20206         get_repl_default_def_ssa_name, return the new SSA name instead of
20207         replacing the old one.
20208         (sra_modify_assign): Dump a message when removing a load, if the LHS
20209         is an SSA_NAME, do not do any propagation, just set the RHS to a
20210         default definition SSA NAME, type convert if necessary.
20211         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
20212
20213 2010-07-22  Richard Guenther  <rguenther@suse.de>
20214
20215         PR tree-optimization/45017
20216         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
20217         TYPE_PRECISION of integral types in addition to size.
20218
20219 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
20220
20221         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
20222         when no C library is specified.
20223
20224 2010-07-22  Martin Jambor  <mjambor@suse.cz>
20225
20226         * ipa-prop.h (struct ipa_node_params): Updated comment.
20227         (struct ipa_edge_args): Likewise.
20228         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
20229
20230 2010-07-22  Martin Jambor  <mjambor@suse.cz>
20231
20232         * cgraphunit.c (verify_edge_count_and_frequency): New function.
20233         (verify_cgraph_node): Verify frequencies of indirect edges.
20234         * tree-inline.c (tree_function_versioning): Update frequencies of
20235         indirect edges.
20236
20237 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20238
20239         PR target/43698
20240         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
20241         Set *arm_rev to be predicable.
20242
20243 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
20244
20245         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
20246         (LINK_COMMAND_SPEC_A): New.
20247         (DSYMUTIL): New.
20248         (DSYMUTIL_SPEC): New.
20249         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
20250         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
20251
20252 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
20253
20254         * calls.c (load_register_parameters): Move check for zero
20255         sized items so that only the call to
20256         mem_overlaps_already_clobbered_arg_p () is protected.
20257
20258 2010-07-22  Jan Hubicka  <jh@suse.cz>
20259
20260         * ipa-pure-const.c (varying_state): Break out from ...
20261         (get_function_state): ... here; always return varying_state
20262         when state would be NULL otherwise.
20263         (remove_node_data): Do not free varying state.
20264
20265 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
20266
20267         PR bootstrap/44970
20268         PR middle-end/45009
20269         * postreload.c: Include "target.h".
20270         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
20271         into account.
20272         (fixup_debug_insns): Don't copy the rtx.
20273         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
20274         Don't copy when replacing.  Call fixup_debug_insns in the case where
20275         we merged one add with another.
20276         (reload_combine_recognize_pattern): Fail if there aren't any uses.
20277         Try harder to determine whether we're picking a valid index register.
20278         Don't set store_ruid for an insn we're going to scan in the
20279         next iteration.
20280         (reload_combine): Remove unused code.
20281         (reload_combine_note_use): When updating use information for
20282         an old insn, ignore a use that occurs after store_ruid.
20283         * Makefile.in (postreload.o): Update dependencies.
20284
20285         * function.c (record_hard_reg_sets): Restrict the previous change
20286         to cases where the incoming nominal mode is the same as the
20287         incoming promoted mode and everything happens in MODE_INT.
20288
20289 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
20290
20291         PR debug/45015
20292         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
20293         ASM_OPERANDS_OUTPUT_IDX.
20294         (adjust_insn): For inline asm with multiple sets ensure first
20295         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
20296         the insn.
20297
20298 2010-07-21  Richard Henderson  <rth@redhat.com>
20299
20300         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
20301         comparison for avoiding xmm register saves.  Emit the xmm register
20302         saves explicitly.
20303         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
20304         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
20305         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
20306         Remove patterns and the associated splitters.
20307
20308 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
20309
20310         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
20311         and imagine parts of a complex, so that they can have the same
20312         base and fall into the same group.
20313
20314 2010-07-21  Richard Guenther  <rguenther@suse.de>
20315
20316         PR lto/45018
20317         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
20318         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
20319         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
20320
20321 2010-07-21  Martin Jambor  <mjambor@suse.cz>
20322
20323         PR tree-optimization/44900
20324         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
20325         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
20326
20327 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
20328
20329         PR middle-end/44738
20330         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
20331
20332 2010-07-21  Richard Guenther  <rguenther@suse.de>
20333
20334         PR middle-end/45013
20335         * tree-ssa.c (useless_type_conversion_p): Dispatch to
20336         gimple_types_compatible_p only when in lto.
20337         * gimple.c (gimple_types_compatible_p): Use canonical types
20338         to speed up comparison.
20339
20340 2010-07-21  Richard Guenther  <rguenther@suse.de>
20341
20342         * tree-flow.h (referenced_var): Move define ...
20343         * tree-flow-inline.h (referenced_var): ... here as an inline
20344         function.  Assert here ...
20345         * tree-dfa.c (referenced_var_lookup): ... instead of here.
20346         * tree-ssa.c (maybe_optimize_var): Check if the variable
20347         is in referenced vars.
20348         (execute_update_addresses_taken): Remove old broken check.
20349         * gimple-pretty-print.c (pp_points_to_solution): Use
20350         referenced_var_lookup.
20351         * tree-into-ssa.c (dump_decl_set): Likewise.
20352
20353 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
20354
20355         PR debug/45003
20356         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
20357         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
20358         ZERO_EXTEND here.
20359
20360 2010-07-20  Richard Henderson  <rth@redhat.com>
20361
20362         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
20363
20364 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
20365
20366         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
20367         computing the sum of the stack pointer and a large constant.
20368         * config/arm/constraints.md (M): Remove superfluous parentheses.
20369         (Pc): New constraint.
20370
20371 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
20372
20373         PR debug/45006
20374         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
20375         operand's type if exp is tcc_unary class tree.
20376
20377 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
20378
20379         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
20380         Reverse sense of if_then_else condition.
20381
20382 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
20383
20384         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
20385         * config/rs6000/rs6000.c (rs6000_override_options): Set
20386         rs6000_block_move_inline_limit appropriately.
20387         (expand_block_move): Use rs6000_block_move_inline_limit.
20388         * doc/invoke.texi (mblock-move-inline-limit): Document.
20389
20390 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
20391
20392         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
20393         FROM and TO.  All callers changed.  Don't look for tracked uses,
20394         just scan the RTL for DEBUG_INSNs and substitute.
20395         (reload_combine_recognize_pattern): Call fixup_debug_insns.
20396         (reload_combine): Ignore DEBUG_INSNs.
20397
20398 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
20399
20400         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
20401         depth to 8 from 5.
20402
20403         PR debug/45003
20404         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
20405         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
20406         instead of the result's type.
20407
20408 2010-07-20  Richard Guenther  <rguenther@suse.de>
20409
20410         PR tree-optimization/44977
20411         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
20412         SSA form.
20413
20414 2010-07-20  Richard Guenther  <rguenther@suse.de>
20415
20416         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
20417         (lto_symtab_merge_decls_2): Likewise.
20418         * gimple.h (gimple_types_compatible_p): Declare.
20419         * gimple.c (gimple_queue_type_fixup): Remove.
20420         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
20421         (gimple_compatible_complete_and_incomplete_type_p): New function.
20422         (gimple_types_compatible_p): Adjust.
20423         (gimple_register_type): Remove type fixup code.
20424         (print_gimple_types_stats): Adjust.
20425         (free_gimple_type_tables): Likewise.
20426         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
20427         * tree-ssa.c (useless_type_conversion_p): Likewise.
20428
20429 2010-07-20  Richard Guenther  <rguenther@suse.de>
20430
20431         PR middle-end/44971
20432         PR middle-end/44988
20433         * tree-ssa.c (maybe_optimize_var): New function split out from ...
20434         (execute_update_addresses_taken): ... here.
20435         (non_rewritable_mem_ref_base): Likewise.
20436         (execute_update_addresses_taken): Do not iterate over all referenced
20437         vars but just all local decls and parms.
20438         Properly check call and asm arguments and rewrite call arguments.
20439
20440 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
20441
20442         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
20443         to top level.
20444         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
20445         definitions ...
20446         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
20447         New macro.
20448         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
20449
20450 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
20451
20452         * gengtype.c (start_root_entry): New function, split out from
20453         write_root.  Check whether V is null and raise an error if so.
20454         (write_field_root): Check for V being null.  Don't raise an error here;
20455         set V to null instead.
20456         (write_root): Update comment above function.  Use start_root_entry.
20457
20458 2010-07-19  Xinliang David Li  <davidxl@google.com>
20459
20460         PR testsuite/44932
20461         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
20462         def edges.
20463         (find_uninit_use): Add dump.
20464         (is_use_properly_guarded): Ditto.
20465         (warn_uninitialized_phi): Ditto.
20466         (execute_late_warn_uninitialized): Ditto.
20467
20468 2010-07-19  Richard Guenther  <rguenther@suse.de>
20469
20470         PR middle-end/44941
20471         * expr.c (emit_block_move_hints): Move zero size check first.
20472         Move asserts to more useful places.
20473         * calls.c (load_register_parameters): Check for zero size.
20474
20475 2010-07-19  Richard Henderson  <rth@redhat.com>
20476
20477         * tree-optimize.c (execute_all_early_local_passes): New.  Change
20478         cgraph_state here ...
20479         (execute_early_local_optimizations): ... not here.  Remove.
20480         (pass_early_local_passes, pass_all_early_optimizations): Update.
20481
20482 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
20483
20484         * postreload.c (reload_combine_closest_single_use): Ignore the
20485         number of uses for DEBUG_INSNs.
20486         (fixup_debug_insns): New static function.
20487         (reload_combine_recognize_const_pattern): Use it.  Don't let the
20488         main loop be affected by DEBUG_INSNs.
20489         Really disallow moving adds past a jump insn.
20490         (reload_combine_recognize_pattern): Don't update use_ruid here.
20491         (reload_combine_note_use): Do it here.
20492         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
20493
20494 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
20495
20496         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
20497         of a loop.
20498         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
20499
20500 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
20501
20502         * config/i386/darwin.h: Define darwin_emit_branch_islands.
20503         (TARGET_MACHO_BRANCH_ISLANDS): New.
20504         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
20505         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
20506         default value.
20507         * config/i386/i386.c (output_pic_addr_const): Do not emit
20508         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
20509         (x86_output_mi_thunk): Adjust symbol creation.
20510         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
20511         Remove out of date comment.
20512         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
20513         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
20514         (DARWIN_GENERATE_ISLANDS): Ditto.
20515         (output_call):  Do not emit branch islands unless
20516         darwin_emit_branch_islands is set.
20517         * config/darwin.c: Declare darwin_emit_branch_islands.
20518         (machopic_indirect_data_reference): Do not emit unless
20519         darwin_emit_branch_islands is set.
20520         (darwin_override_options): Set darwin_emit_branch_islands
20521         where it is needed.
20522         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
20523
20524 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20525
20526         * doc/sourcebuild.texi (Effective-Target Keywords): Document
20527         sse_runtime, sse2_runtime.
20528
20529 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
20530
20531         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
20532         low half of a single-register SCmode return value before ORing
20533         it with the high half.
20534         * config/mips/mips16.S (MERGE_GPRf): Likewise.
20535
20536 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20537
20538         PR target/44805
20539         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
20540         on all targets.
20541
20542 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
20543
20544         PR target/42235
20545         * postreload.c (reload_cse_move2add): Return bool, true if anything.
20546         changed.  All callers changed.
20547         (move2add_use_add2_insn): Likewise.
20548         (move2add_use_add3_insn): Likewise.
20549         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
20550         reload_combine.
20551         (RELOAD_COMBINE_MAX_USES): Bump to 16.
20552         (last_jump_ruid): New static variable.
20553         (struct reg_use): New members CONTAINING_MEM and RUID.
20554         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
20555         (reload_combine_split_one_ruid, reload_combine_split_ruids,
20556         reload_combine_purge_insn_uses, reload_combine_closest_single_use
20557         reload_combine_purge_reg_uses_after_ruid,
20558         reload_combine_recognize_const_pattern): New static functions.
20559         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
20560         is true for our reg and that we have available index regs.
20561         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
20562         callers changed.  Use them to initialize fields in struct reg_use.
20563         (reload_combine): Initialize last_jump_ruid.  Be careful when to
20564         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
20565         Call reload_combine_recognize_const_pattern.
20566         (reload_combine_note_store): Update REAL_STORE_RUID field.
20567
20568 2010-07-16  Jason Merrill  <jason@redhat.com>
20569
20570         * Makefile.in (opts-common.o): Depend on options.h.
20571
20572 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
20573
20574         * tree.c (build_common_builtin_nodes): Use build_function_type_list
20575         instead of build_function_type.
20576         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
20577         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
20578
20579 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
20580
20581         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
20582         do all the work.
20583         (rs6000_emit_int_cmove): Use function pointers for insn generation.
20584         Don't force values into registers unnecessarily.
20585         (output_isel): Assert that we're not given conditions we can't handle.
20586         Delete corresponding code.
20587         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
20588         scc_comparison_operator constraint.  Permit 0 for the consequent
20589         operand.  Permit any GPR for the alternative operand.
20590         (isel_unsigned_<mode>): Likewise.
20591
20592 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
20593
20594         PR target/44942
20595         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
20596         argument to const_tree.
20597         * config/i386/i386.c (function_arg_advance): If padding needs to be
20598         inserted before argument, increment cum->words by number of padding
20599         words as well.
20600         (contains_aligned_value_p): Change argument to const_tree.
20601         (ix86_function_arg_boundary): Change second argument to const_tree.
20602
20603 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
20604
20605         PR target/42235
20606         * function.c (record_hard_reg_sets): New static function.
20607         (assign_parm_setup_reg): If an optab for extending exists and the
20608         generated code clobbbers no hard regs, emit the insn directly and
20609         create a REG_EQUIV note.
20610
20611 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
20612
20613         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
20614         TREE_CHAIN.
20615         * c-typeck.c (push_init_level): Likewise.
20616         (process_init_element): Likewise.
20617
20618 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
20619
20620         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
20621         (integer_three_node): Add.
20622         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
20623         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
20624         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
20625         of call build_int_cst.
20626         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
20627         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
20628         (find_interesting_uses_address): Ditto.
20629         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
20630         * tree-eh.c (lower_eh_constructs_2): Ditto.
20631         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
20632         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
20633         * expmed.c (expand_divmod): Ditto.
20634         * tree-mudflap.c (mx_register_decls): Ditto.
20635         * varasm.c (array_size_for_constructor): Ditto.
20636         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
20637         * c-parser.c (c_parser_postfix_expression): Ditto.
20638
20639 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
20640
20641         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
20642         New static variables.
20643         (reload_combine_recognize_pattern): New static function, broken out
20644         of reload_combine.
20645         (reload_combine): Use it.  Only initialize first_index_reg and
20646         last_index_reg once.
20647
20648 2010-07-15  Richard Henderson  <rth@redhat.com>
20649
20650         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
20651         when done.
20652
20653 2010-07-15  Jan Hubicka  <jh@suse.cz>
20654
20655         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
20656         comdats for broken gold.
20657         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
20658
20659 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
20660
20661         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
20662
20663 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
20664
20665         * tree.h (DECL_CHAIN): Define.
20666         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
20667         * c-decl.c: Likewise.
20668         * c-parser.c: Likewise.
20669         * c-typeck.c: Likewise.
20670         * cfgexpand.c: Likewise.
20671         * cgraph.c: Likewise.
20672         * cgraphunit.c: Likewise.
20673         * combine.c: Likewise.
20674         * config/alpha/alpha.c: Likewise.
20675         * config/arm/arm.c: Likewise.
20676         * config/frv/frv.c: Likewise.
20677         * config/i386/i386.c: Likewise.
20678         * config/i386/winnt-cxx.c: Likewise.
20679         * config/ia64/ia64.c: Likewise.
20680         * config/iq2000/iq2000.c: Likewise.
20681         * config/mep/mep.c: Likewise.
20682         * config/mips/mips.c: Likewise.
20683         * config/pa/som.h: Likewise.
20684         * config/rs6000/rs6000.c: Likewise.
20685         * config/s390/s390.c: Likewise.
20686         * config/sh/sh.c: Likewise.
20687         * config/sh/symbian-cxx.c: Likewise.
20688         * config/sparc/sparc.c: Likewise.
20689         * config/spu/spu.c: Likewise.
20690         * config/stormy16/stormy16.c: Likewise.
20691         * config/vxworks.c: Likewise.
20692         * config/xtensa/xtensa.c: Likewise.
20693         * coverage.c: Likewise.
20694         * dbxout.c: Likewise.
20695         * dwarf2out.c: Likewise.
20696         * emit-rtl.c: Likewise.
20697         * expr.c: Likewise.
20698         * function.c: Likewise.
20699         * gimple-low.c: Likewise.
20700         * gimple-pretty-print.c: Likewise.
20701         * gimplify.c: Likewise.
20702         * integrate.c: Likewise.
20703         * ipa-inline.c: Likewise.
20704         * ipa-prop.c: Likewise.
20705         * ipa-split.c: Likewise.
20706         * ipa-struct-reorg.c: Likewise.
20707         * ipa-type-escape.c: Likewise.
20708         * langhooks.c: Likewise.
20709         * lto-cgraph.c: Likewise.
20710         * omp-low.c: Likewise.
20711         * stor-layout.c: Likewise.
20712         * tree-cfg.c: Likewise.
20713         * tree-complex.c: Likewise.
20714         * tree-dfa.c: Likewise.
20715         * tree-dump.c: Likewise.
20716         * tree-inline.c: Likewise.
20717         * tree-mudflap.c: Likewise.
20718         * tree-nested.c: Likewise.
20719         * tree-object-size.c: Likewise.
20720         * tree-pretty-print.c: Likewise.
20721         * tree-sra.c: Likewise.
20722         * tree-ssa-live.c: Likewise.
20723         * tree-ssa-loop-niter.c: Likewise.
20724         * tree-ssa-math-opts.c: Likewise.
20725         * tree-ssa-reassoc.c: Likewise.
20726         * tree-ssa-sccvn.c: Likewise.
20727         * tree-ssa-structalias.c: Likewise.
20728         * tree-tailcall.c: Likewise.
20729         * tree-vrp.c: Likewise.
20730         * tree.c: Likewise.
20731         * var-tracking.c: Likewise.
20732         * varasm.c: Likewise.
20733
20734 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20735
20736         PR target/44877
20737         * config/spu/spu.c (spu_expand_builtin_1): Allow references
20738         (as well as pointers) as argument to mask_for_load builtins.
20739
20740 2010-07-15  Richard Guenther  <rguenther@suse.de>
20741
20742         PR tree-optimization/44946
20743         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
20744         with accessing only padding properly.
20745
20746 2010-07-15  Jan Hubicka  <jh@suse.cz>
20747
20748         * ipa.c (function_and_variable_visibility): Variables marked as used
20749         should not be localized.
20750
20751 2010-07-15  Jan Hubicka  <jh@suse.cz>
20752
20753         * cgraph.c: Include lto-streamer.h
20754         (change_decl_assembler_name): Work when assembler name hash is at place.
20755         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
20756         be sure to rename it to avoid name clash.
20757         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
20758         Localize hidden symbols only when locally defined.
20759
20760 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
20761
20762         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
20763
20764 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
20765             Kevin F. Quinn  <kevquinn@gentoo.org>
20766
20767         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
20768         * common.opt: Add -Wtrampolines.
20769         * doc/invoke.texi: Add -Wtrampolines.
20770
20771 2010-07-15  Jie Zhang  <jie@codesourcery.com>
20772
20773         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
20774         cortex_a8_issue_ls.
20775
20776 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
20777
20778         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
20779         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
20780
20781 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20782
20783         * config/spu/spu.c (reg_names): Remove prototype.
20784         (call_used_regs): Likewise.
20785
20786 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
20787
20788         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
20789         "unused" with attribute "used".
20790         (__JCR_END__): Likewise.
20791         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
20792         "used" attribute.
20793         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
20794
20795 2010-07-14  Richard Guenther  <rguenther@suse.de>
20796
20797         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
20798         (maybe_fixup_decls): Likewise.
20799         (input_gimple_stmt): Do not fixup anything.
20800         * lto-streamer-out.c (output_gimple_stmt): Make sure all
20801         non-automatic variable uses are wrapped inside a MEM_REF.
20802
20803 2010-07-14  Richard Henderson  <rth@redhat.com>
20804
20805         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
20806         for functions.
20807         * varasm.c (assemble_variable): Remove early exit for functions;
20808         assert that we're given a variable.
20809
20810 2010-07-14  Jie Zhang  <jie@codesourcery.com>
20811
20812         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
20813         cortex_a8_default when neon_type is not none.
20814
20815 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
20816
20817         * lower-subreg.c (subreg_context): New static bitmap.
20818         (decompose_multiword_subregs): Allocate and free it.
20819         (find_decomposable_subregs): Set a bit in it for a register that
20820         occurs in a subreg that changes mode but not size.
20821         (can_decompose_p): Test it instead of non_decomposable_context.
20822
20823 2010-07-14  Richard Guenther  <rguenther@suse.de>
20824
20825         PR tree-optimization/44824
20826         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
20827         is_gimple_mem_ref_addr.
20828         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
20829         non-decl_address_invariant_p addresses.
20830
20831 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
20832
20833         * reload.c (find_reloads): Revert code to penalize small register
20834         classes that was brought in with the IRA merge.
20835
20836 2010-07-14  Richard Guenther  <rguenther@suse.de>
20837
20838         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
20839         as base of ARRAY_REFs.
20840
20841 2010-07-14  Richard Guenther  <rguenther@suse.de>
20842
20843         PR middle-end/44930
20844         * tree-pretty-print.c (do_niy): Do not print a newline.
20845
20846 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
20847
20848         * ira-int.h (struct ira_object): New.
20849         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
20850         (struct ira_allocno): Remove members min, max,
20851         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
20852         conflict_allocnos_num and conflict_vec_p.  Add new member object.
20853         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
20854         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
20855         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
20856         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
20857         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
20858         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
20859         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
20860         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
20861         an ira_object_t rather than ira_allocno_t.  All uses changed.
20862         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
20863         contains a vector of ira_object_t; all uses changed.
20864         (ira_objects_num): Declare variable.
20865         (ira_create_allocno_object): Declare function.
20866         (ira_conflict_vector_profitable_p): Adjust prototype.
20867         (ira_allocate_conflict_vec): Renamed from
20868         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
20869         (ira_allocate_object_conflicts): Renamed from
20870         ira_allocate_allocno_conflicts; first arg now ira_object_t.
20871         (struct ira_object_iterator): New.
20872         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
20873         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
20874         to conflict_vec_p.  All uses changed.
20875         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
20876         Changed to take into account that conflicts are now tracked for
20877         objects.
20878         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
20879         Args changed to accept ira_object_t.  All uses changed.
20880         (allocnos_conflict_p): New static function.
20881         (collected_conflict_objects): Renamed from collected_allocno_objects;
20882         now a vector of ira_object_t.  All uses changed.
20883         (build_conflict_bit_table): Changed to take into account that
20884         conflicts are now tracked for objects.
20885         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
20886         (print_allocno_conflicts, ira_build_conflicts): Likewise.
20887         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
20888         setup_allocno_left_conflicts_size, allocno_reload_assign,
20889         fast_allocation): Likewise.
20890         * ira-lives.c (make_hard_regno_born, make_allocno_born)
20891         process_single_reg_class_operands, process_bb_node_lives): Likewise.
20892         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
20893         Likewise.
20894         * ira-build.c (ira_objects_num): New variable.
20895         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
20896         contains a vector of ira_object_t; all uses changed.
20897         (ira_object_id_map_vec): Corresponding change.
20898         (object_pool): New static variable.
20899         (initiate_allocnos): Initialize it.
20900         (finish_allocnos): Free it.
20901         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
20902         New functions.
20903         (ira_create_allocno): Don't set members that were removed.
20904         (ira_set_allocno_cover_class): Don't change conflict hard regs.
20905         (merge_hard_reg_conflicts): Changed to take into account that
20906         conflicts are now tracked for objects.
20907         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
20908         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
20909         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
20910         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
20911         setup_min_max_conflict_allocno_ids, ):  Likewise.
20912         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
20913         to ira_object_t; all callers changed.
20914         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
20915         to ira_object_t, all callers changed.
20916         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
20917         to ira_object_t, all callers changed.
20918         (conflict_check, curr_conflict_check_tick): Renamed from
20919         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
20920         changed.
20921         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
20922         arg changed to ira_object_t, all callers changed.
20923         (create_cap_allocno): Call ira_create_allocno_object.
20924         (finish_allocno): Free the corresponding object.
20925         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
20926         callers changed.  Adjusted for dealing with objects.
20927         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
20928         dealing with objects.
20929         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
20930
20931         * ira-int.h (struct live_range): Rename allocno member to object
20932         and change type to ira_object_t.
20933         (struct ira_object): New member live_ranges.
20934         (struct ira_allocno): Remove member live_ranges.
20935         (ALLOCNO_LIVE_RANGES): Remove.
20936         (OBJECT_LIVE_RANGES): New macro.
20937         (ira_create_live_range, ira_copy_live_range_list,
20938         ira_merge_live_range_list, ira_live_ranges_intersect_p,
20939         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
20940         * ira-build.c (ira_create_object): Initialize live ranges here.
20941         (ira_create_allocno): Not here.
20942         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
20943         changed to ira_object_t, all callers changed.
20944         (copy_live_range): Rename from copy_allocno_live_range, all callers
20945         changed.
20946         (ira_copy_live_range_list): Rename from
20947         ira_copy_allocno_live_range_list, all callers changed.
20948         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
20949         all callers changed.
20950         (ira_live_ranges_intersect_p): Rename from
20951         ira_allocno_live_ranges_intersect_p, all callers changed.
20952         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
20953         callers changed.
20954         (ira_finish_live_range_list): Rename from
20955         ira_finish_allocno_live_range_list, all callers changed.
20956         (change_object_in_range_list): Rename from change_allocno_in_range_list,
20957         last arg changed to ira_object_t, all callers changed.
20958         (finish_allocno): Changed to expect live ranges in the allocno's object.
20959         (move_allocno_live_ranges, copy_allocno_live_ranges,
20960         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
20961         ira_flattening, ira_build): Likewise.
20962         * ira-color.c (allocnos_have_intersected_live_ranges_p,
20963         slot_coalesced_allocno_live_ranges_intersect,
20964         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
20965         * ira-conflicts.c (build_conflict_bit_table): Likewise.
20966         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
20967         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
20968         make_allocno_dead, create_start_finish_chains,
20969         remove_some_program_points_and_update_live_ranges,
20970         ira_debug_live_range_list): Likewise.
20971
20972         * ira-int.h (ira_object_conflict_iterator): Rename from
20973         ira_allocno_conflict_iterator.
20974         (ira_object_conflict_iter_init): Rename from
20975         ira_allocno_conflict_iter_init, second arg changed to
20976         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
20977         FOR_EACH_ALLOCNO_CONFLICT.
20978         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
20979         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
20980         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
20981         * ira-conflicts.c (print_allocno_conflicts): Likewise.
20982
20983 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
20984
20985         PR other/44874
20986         * tree-dump.c (dump_options): Add enumerate_locals entry.
20987         Add TDF_NOID exclusion to all entry.
20988         * tree-dump.h (dump_enumerated_decls): Declare.
20989         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
20990         Don't display type uid.
20991         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
20992         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
20993         * tree-ssa-live.c: Include gimple.h.
20994         (numbered_tree_d): New struct.
20995         (numbered_tree): New typedef.
20996         (DEF_VEC_O (numbered_tree): New.
20997         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
20998         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
20999         (dump_enumerated_decls): Likewise.
21000         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
21001         debug info and flag_dump_final_insns, call dump_enumerated_decls.
21002         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
21003         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
21004
21005 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
21006
21007         * expmed.h (MAX_BITS_PER_WORD): Move to...
21008         * defaults.h (MAX_BITS_PER_WORD): ...here.
21009
21010 2010-07-13  DJ Delorie  <dj@redhat.com>
21011
21012         * config/h8300/h8300.c (h8300_init_once): Default to
21013         -fstrict_volatile_bitfields.
21014
21015         * config/sh/sh.c (sh_override_options): Default to
21016         -fstrict_volatile_bitfields.
21017
21018         * config/rx/rx.c (rx_option_override): New.
21019
21020         * config/m32c/m32c.c (m32c_override_options): Default to
21021         -fstrict_volatile_bitfields.
21022
21023 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
21024
21025         * tree.h (build_function_call_expr): Delete.
21026         (build_call_expr_loc_array): New function.
21027         (build_call_expr_loc_vec): New function.
21028         * tree-flow.h (struct omp_region): Change type of ws_args field
21029         to a VEC.
21030         * builtins.c (build_function_call_expr): Delete.
21031         (build_call_expr_loc_array): New function.
21032         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
21033         (build_call_expr): Likewise.
21034         (build_call_expr_loc_vec): New function.
21035         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
21036         build_function_call_expr.
21037         * expr.c (emutls_var_address): Likewise.
21038         * varasm.c (emutls_common_1): Likewise.
21039         * omp-low.c (expand_omp_atomic_mutex): Likewise.
21040         (expand_omp_taskreg): Adjust for new type of region->ws_args.
21041         (get_ws_args_for): Return a VEC instead of a tree.
21042         (expand_parallel_call): Call build_call_expr_loc_vec instead of
21043         build_function_call_expr.
21044         * stor-layout.c (self_referential_size): Likewise.
21045
21046 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
21047
21048         PR testsuite/44701
21049         * recog.c (constrain_operands): Allow side-effects in memory
21050         operands if either < or > constraint is used, rather than if
21051         both < and > is used.
21052
21053 2010-07-13  Richard Guenther  <rguenther@suse.de>
21054
21055         PR middle-end/44911
21056         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
21057         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
21058         without name.
21059
21060 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
21061
21062         PR target/44761
21063         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
21064         to variable emited.
21065         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
21066         * config/sh/sh.md (symGOT_load): Likewise.
21067         (symDTPOFF2reg): Likewise.
21068         (symTPOFF2reg): Likewise.
21069
21070 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21071
21072         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
21073         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
21074
21075 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21076
21077         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
21078         explanation.
21079         Find ucontext_t * on Solaris 11.
21080         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
21081         Handle new Solaris 11 __sighndlr patterns.
21082
21083 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
21084
21085         PR debug/44901
21086         * vec.h (VEC_block_remove): Fix comment.
21087         * tree-ssa-live.c (remove_unused_locals): Don't use
21088         VEC_unordered_remove on local_decls, instead replace a single
21089         vector element in each iteration if at least one element had
21090         to be removed and VEC_truncate at the end.
21091         * omp-low.c (expand_omp_taskreg): Likewise.
21092
21093 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21094
21095         * c-decl.c (finish_function): Fix typo in comment.
21096
21097 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
21098
21099         PR bootstrap/44921
21100         * postreload.c (move2add_use_add3_insn): Silence gcc warning
21101         on min_regno.
21102
21103 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
21104
21105         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
21106         (simplify_stmt_using_ranges): Use it.
21107
21108 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21109
21110         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
21111         member.  Do not mark as GTY(()).
21112         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
21113         (spu_builtin_decls): New static variable.
21114         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
21115         (spu_init_builtins): Likewise.
21116         (spu_builtin_mul_widen_even): Likewise.
21117         (spu_builtin_mul_widen_odd): Likewise.
21118         (spu_builtin_mask_for_load): Likewise.
21119         (spu_builtin_vec_perm): Likewise.
21120         * config/spu/spu-c.c: Include "target.h".
21121         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
21122         of using spu_builtins[].fndecl.
21123
21124 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21125
21126         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
21127         imply -minterlink-mips16.
21128
21129 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21130
21131         * config/mips/mips.h (mips16_globals): Declare.
21132         (SWITCHABLE_TARGET): Define.
21133         * config/mips/mips.c: Include target-globals.h.
21134         (mips16_globals): New variable.
21135         (mips_set_mips16_mode): Use save_target_globals and
21136         restore_target_globals instead of target_reinit.
21137
21138 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21139
21140         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
21141         to say that the function can be called more than once.
21142         * target-globals.c (save_target_globals): Call init_reg_sets.
21143
21144 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21145
21146         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
21147         * bb-reorder.h: New file.
21148         * bb-reorder.c (default_target_bb_reorder): New variable.
21149         (this_target_bb_reorder): New conditional variable.
21150         (uncond_jump_length): Redefine as a macro.
21151         * target-globals.h (this_target_bb_reorder): Declare.
21152         (target_globals): Add a bb_reorder field.
21153         (restore_target_globals): Copy the bb_reorder field to
21154         this_target_bb-reorder.
21155         * target-globals.c: Include bb-reorder.h.
21156         (default_target_globals): Initialize the bb_reorder field.
21157         (save_target_globals): Likewise.
21158
21159 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21160
21161         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
21162         * gcse.h: New file.
21163         * gcse.c: Include gcse.h.
21164         (default_target_gcse): New variable.
21165         (this_target_gcse): New conditional variable.
21166         (can_copy): Redefine as a macro.
21167         (can_copy_init_p): New macro.
21168         (can_copy_p): Remove can_copy_init_p.
21169         * target-globals.h (this_target_gcse): Declare.
21170         (target_globals): Add a gcse field.
21171         (restore_target_globals): Copy the gcse field to this_target_gcse.
21172         * target-globals.c: Include gcse.h.
21173         (default_target_globals): Initialize the gcse field.
21174         (save_target_globals): Likewise.
21175
21176 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21177
21178         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
21179         and x_ira_prohibited_mode_move_regs_initialized_p.
21180         (ira_prohibited_mode_move_regs): Redefine as a macro.
21181         * ira.c (ira_prohibited_mode_move_regs): Delete.
21182         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
21183
21184 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21185
21186         * reload.h (target_reload): Add x_cached_reg_save_code and
21187         x_cached_reg_restore_code.
21188         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
21189         Redefine as macros.
21190
21191 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21192
21193         * Makefile.in (target-globals.o): Depend on builtins.h.
21194         * builtins.h: New file.
21195         * builtins.c: Include builtins.h.
21196         (default_target_builtins): New variable.
21197         (this_target_builtins): New conditional variable.
21198         (apply_args_mode, apply_result_mode): Redefine as macros.
21199         * target-globals.h (this_target_builtins): Declare.
21200         (target_globals): Add a builtins field.
21201         (restore_target_globals): Copy the builtins field to
21202         this_target_builtins.
21203         * target-globals.c: Include builtins.h.
21204         (default_target_globals): Initialize the builtins field.
21205         (save_target_globals): Likewise.
21206
21207 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21208
21209         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
21210         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
21211         from expmed.c.
21212         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
21213         (alg_hash, alg_hash_used_p): New macros.
21214         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
21215         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
21216         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
21217
21218 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21219
21220         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
21221         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
21222         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
21223         (this_op_costs, costs_classes): Redefine as macros.
21224         (record_reg_classes): Don't take op_costs as a parameter.
21225         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
21226         (scan_one_insn): Update call to record_operand_costs.
21227
21228 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21229
21230         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
21231         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
21232         (target_ira_int): New structure.
21233         (default_target_ira_int): Declare.
21234         (this_target_ira_int): Declare as a variable or define as a macro.
21235         (ira_reg_mode_hard_regset, ira_register_move_cost)
21236         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
21237         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
21238         (prohibited_class_mode_regs, ira_important_classes_num)
21239         (ira_important_classes, ira_reg_class_intersect)
21240         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
21241         (ira_reg_class_union): Redefine as macros.
21242         * ira.h (target_ira): New structure.
21243         (default_target_ira): Declare.
21244         (this_target_ira): Declare as a variable or define as a macro.
21245         (ira_available_class_regs, ira_hard_regno_cover_class)
21246         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
21247         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
21248         (ira_class_hard_regs_num): Redefine as macros.
21249         * ira.c (default_target_ira, default_target_ira_int): New variables.
21250         (this_target_ira, this_target_ira_int): New conditional variables.
21251         (ira_reg_mode_hard_regset, ira_memory_move_cost)
21252         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
21253         (ira_class_subset_p): Delete.
21254         (no_unit_alloc_regs): Redefine as a macro.
21255         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
21256         (ira_class_hard_regs_num, ira_class_hard_reg_index)
21257         (ira_available_class_regs): Delete.
21258         (alloc_reg_class_subclasses): Redefine as a macro.
21259         (ira_reg_class_cover_size, ira_reg_class_cover)
21260         (ira_important_classes_num, ira_important_classes)
21261         (ira_important_class_nums, ira_class_translate): Delete.
21262         (cover_class_order): Document the variable's lifetime.
21263         (reorder_important_classes): Don't set ira_important_class_nums.
21264         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
21265         (ira_reg_class_super_classes, ira_reg_class_union)
21266         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
21267         Delete.
21268         (setup_reg_class_nregs): Don't set ira_max_regs.
21269         (prohibited_class_mode_regs): Delete.
21270         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
21271         (target_globals): Add ira and ira_int fields.
21272         (restore_target_globals): Copy the ira field to this_target_ira
21273         and the ira_int field to this_target_ira_int.
21274         * target-globals.c: Include ira-int.h.
21275         (default_target_globals): Initialize the ira and ira_int fields.
21276         (save_target_globals): Likewise.
21277
21278 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21279
21280         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
21281         * cfgloop.h (target_cfgloop): New structure.
21282         (default_target_cfgloop): Declare.
21283         (this_target_cfgloop): Declare as a variable or define as a macro.
21284         (target_avail_regs, target_clobbered_regs, target_res_regs)
21285         (target_reg_cost, target_spill_cost): Redefine as macros.
21286         * cfgloopanal.c (default_target_cfgloop): New variable.
21287         (this_target_cfgloop): New conditional variable.
21288         (target_avail_regs, target_clobbered_regs, target_res_regs)
21289         (target_reg_cost, target_spill_cost): Delete.
21290         * target-globals.h (this_target_cfgloop): Declare.
21291         (target_globals): Add a cfgloop field.
21292         (restore_target_globals): Copy the cfgloop field to
21293         this_target_cfgloop.
21294         * target-globals.c: Include cfgloop.h.
21295         (default_target_globals): Initialize the cfgloop field.
21296         (save_target_globals): Likewise.
21297
21298 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21299
21300         * regs.h (target_regs): Add x_direct_load, x_direct_store and
21301         x_float_extend_from_mem.
21302         (direct_load, direct_store, float_extend_from_mem): New macros.
21303         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
21304
21305 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21306
21307         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
21308         (target-globals.o): Depend on $(LIBFUNCS_H).
21309         * libfuncs.h: Include hashtab.h.
21310         (libfunc_entry): Moved from optabs.c.
21311         (target_libfuncs): New structure.
21312         (default_target_libfuncs): Declare.
21313         (this_target_libfuncs): Declare as a variable or define as a macro.
21314         (libfunc_table): Redefine as a macro.
21315         * optabs.c (default_target_libfuncs): New variable.
21316         (this_target_libfuncs): New conditional variable.
21317         (libfunc_table): Delete.
21318         (libfunc_entry): Moved to optabs.h.
21319         (libfunc_hash): Redefine as a macro.
21320         (hash_libfunc, eq_libfunc): Fix comments.
21321         (init_optabs): Use libfunc_hash to detect cases where the function
21322         has already been called.  Clear the hash table instead of
21323         recreating it.
21324         * target-globals.h (this_target_libfuncs): Declare.
21325         (target_globals): Add a libfuncs field.
21326         (restore_target_globals): Copy the libfuncs field to
21327         this_target_libfuncs.
21328         * target-globals.c: Include libfuncs.h.
21329         (default_target_globals): Initialize the libfuncs field.
21330         (save_target_globals): Likewise.
21331
21332 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21333
21334         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
21335         in all dependency lists.
21336
21337 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21338
21339         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
21340         * optabs.h (target_optabs): New structure.
21341         (default_target_optabs): Declare.
21342         (this_target_optabs): Declare as a variable or define as a macro.
21343         (optab_table, convert_optab_table, direct_optab_table): Redefine
21344         as macros.
21345         * optabs.c (default_target_optabs): New variable.
21346         (this_target_optabs): New conditional variable.
21347         (optab_table, convert_optab_table, direct_optab_table): Delete.
21348         * target-globals.h (this_target_optabs): Declare.
21349         (target_globals): Add a optabs field.
21350         (restore_target_globals): Copy the optabs field to
21351         this_target_optabs.
21352         * target-globals.c: Include expr.h and optabs.h.
21353         (default_target_globals): Initialize the optabs field.
21354         (save_target_globals): Likewise.
21355
21356 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21357
21358         * flags.h (target_flagstate): Add x_flag_excess_precision.
21359         (flag_excess_precision): Redefine as a macro.
21360         * toplev.c (flag_excess_precision): Delete.
21361
21362 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21363
21364         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
21365         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
21366         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
21367         (no_caller_save_reg_set): Redefine as a macro.
21368         * reload.h (target_reload): Add x_caller_save_initialized_p and
21369         x_regno_save_mode.
21370         (caller_save_initialized_p): Redefine as a macro.
21371         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
21372         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
21373         (regno_save_mode): Redefine as a macro.
21374
21375 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21376
21377         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
21378         * expmed.h: New file.
21379         * expmed.c (default_target_costs): New variable.
21380         (this_target_costs): New conditional variable.
21381         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
21382         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
21383         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
21384         * target-globals.h (this_target_expmed): Declare.
21385         (target_globals): Add a expmed field.
21386         (restore_target_globals): Copy the expmed field to
21387         this_target_expmed.
21388         * target-globals.c: Include expmed.h.
21389         (default_target_globals): Initialize the expmed field.
21390         (save_target_globals): Likewise.
21391
21392 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21393
21394         * Makefile.in (target-globals.o): Depend on reload.h.
21395         * reload.h (target_reload): New structure.
21396         (default_target_reload): Declare.
21397         (this_target_reload): Declare as a variable or define as a macro.
21398         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
21399         * reload1.c (default_target_reload): New variable
21400         (this_target_reload): New conditional variable.
21401         (indirect_symref_ok, double_reg_address_ok): Delete.
21402         (spill_indirect_levels): Redefine as a macro.
21403         * target-globals.h (this_target_reload): Declare.
21404         (target_globals): Add a reload field.
21405         (restore_target_globals): Copy the reload field to
21406         this_target_reload.
21407         * target-globals.c: Include hard-reg-set.h.
21408         (default_target_globals): Initialize the reload field.
21409         (save_target_globals): Likewise.
21410
21411 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21412
21413         * rtl.h (target_rtl): Add x_static_reg_base_value.
21414         * alias.c (static_reg_base_value): Redefine as a macro.
21415
21416 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21417
21418         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
21419         (GTFILES): Remove reginfo.c.
21420         * rtl.h (target_rtl): Add x_top_of_stack.
21421         (top_of_stack): New macro.
21422         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
21423         (top_of_stack): Delete.
21424
21425 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21426
21427         * regs.h (target_regs): Add x_hard_regs_of_mode,
21428         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
21429         x_may_move_out_cost and x_last_mode_for_init_move_cost.
21430         (have_regs_of_mode, contains_reg_of_mode, move_cost)
21431         (may_move_in_cost, may_move_out_cost): Redefine as macros.
21432         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
21433         (may_move_in_cost, may_move_out_cost): Delete.
21434         (last_mode_for_init_move_cost): Redefine as a macro.
21435
21436 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21437
21438         * hard-reg-set.h (target_hard_regs): New structure.
21439         (default_target_hard_regs): Declare.
21440         (this_target_hard_regs): Declare as a variable or define as a macro.
21441         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
21442         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
21443         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
21444         (reg_class_size, reg_class_subclasses, reg_class_subunion)
21445         (reg_class_superunion, reg_names): Redefine as macros.
21446         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
21447         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
21448         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
21449         (reg_class_contents, reg_class_size, reg_class_subclasses)
21450         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
21451         (default_target_hard_regs): New variable
21452         (this_target_hard_regs, initial_call_really_used_regs)
21453         (initial_reg_alloc_order): New conditional variables.
21454         (initial_reg_names): New variable.
21455         (init_reg_sets): Assert that initial_call_really_used_regs,
21456         initial_reg_alloc_order and initial_reg_names
21457         are all the same size as their variable counterparts.  Use them to
21458         initialize those counterparts.
21459         * target-globals.h (this_target_hard_regs): Declare.
21460         (target_globals): Add a hard_regs field.
21461         (restore_target_globals): Copy the hard_regs field to
21462         this_target_hard_regs.
21463         * target-globals.c: Include hard-reg-set.h.
21464         (default_target_globals): Initialize the hard_regs field.
21465         (save_target_globals): Likewise.
21466
21467 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21468
21469         * Makefile.in (target-globals.o): Depend on $(RTL_H).
21470         * rtl.h (target_rtl): New structure.
21471         (default_target_rtl): Declare.
21472         (this_target_rtl): Declare as a variable or define as a macro.
21473         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
21474         Redefine as macros.
21475         * emit-rtl.c (default_target_rtl): New variable.
21476         (this_target_rtl): New conditional variable.
21477         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
21478         (return_address_pointer_rtx): Delete.
21479         (initial_regno_reg_rtx): New macro.
21480         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
21481         (init_emit_regs): Likewise.
21482         * target-globals.h (this_target_rtl): Declare.
21483         (target_globals): Add a rtl field.
21484         (restore_target_globals): Copy the rtl field to this_target_rtl.
21485         * target-globals.c: Include rtl.h.
21486         (default_target_globals): Initialize the rtl field.
21487         (save_target_globals): Likewise.
21488
21489 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21490
21491         * Makefile.in (target-globals.o): Depend on $(REGS_H).
21492         * regs.h (target_reg_modes): New structure.
21493         (default_target_reg_modes): Declare.
21494         (this_target_reg_modes): Declare as a variable or define as a macro.
21495         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
21496         * reginfo.c (default_target_reg_modes): New variable.
21497         (this_target_reg_modes): New conditional variable.
21498         (hard_regno_nregs, reg_raw_mode): Delete.
21499         * target-globals.h (this_target_regs): Declare.
21500         (target_globals): Add a regs field.
21501         (restore_target_globals): Copy the regs field to this_target_regs.
21502         * target-globals.c: Include regs.h.
21503         (default_target_globals): Initialize the regs field.
21504         (save_target_globals): Likewise.
21505
21506 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21507
21508         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
21509         * doc/tm.texi: Regenerate.
21510         * Makefile.in (OBJS-common): Add target-globals.o.
21511         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
21512         and target-globals.h.
21513         (target-globals.o): New rule.
21514         (GTFILES): Include $(srcdir)/target-globals.h.
21515         * defaults.h (SWITCHABLE_TARGET): Define.
21516         * gengtype.c (open_base_files): Add target-globals.h to the
21517         list of includes.
21518         * target-globals.h: New file.
21519         * target-globals.c: Likewise.
21520
21521         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
21522         * flags.h (target_flag_state): New structure.
21523         (default_target_flag_state): Declare.
21524         (this_target_flag_state): Declare as a variable or define as a macro.
21525         (align_loops_log): Redefine as a macro.
21526         (align_loops_max_skip, align_jumps_log): Likewise.
21527         (align_jumps_max_skip, align_labels_log): Likewise.
21528         (align_labels_max_skip, align_functions_log): Likewise.
21529         * toplev.c (default_target_flag_state): New variable.
21530         (this_target_flag_state): New conditional variable.
21531         (align_loops_log): Delete.
21532         (align_loops_max_skip, align_jumps_log): Likewise.
21533         (align_jumps_max_skip, align_labels_log): Likewise.
21534         (align_labels_max_skip, align_functions_log): Likewise.
21535         * target-globals.h (this_target_flag_state): Declare.
21536         (target_globals): Add a flag_state field.
21537         (restore_target_globals): Copy the flag_state field to
21538         this_target_flag_state.
21539         * target-globals.c: Include flags.h.
21540         (default_target_globals): Initialize the flag_state field.
21541         (save_target_globals): Likewise.
21542
21543 2010-07-12  Jie Zhang  <jie@codesourcery.com>
21544
21545         * postreload.c (reg_symbol_ref[]): New.
21546         (move2add_use_add2_insn): New.
21547         (move2add_use_add3_insn): New.
21548         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
21549         (move2add_note_store): Likewise.
21550
21551 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
21552
21553         PR rtl-optimization/44752
21554         * genautomata.c (main): Don't emit an empty file even if there
21555         is no automaton.
21556
21557 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21558
21559         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
21560         ix86_solaris_return_in_memory.
21561         * config/i386-protos.h: Reflect this.
21562         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
21563         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
21564         Move ...
21565         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
21566
21567 2010-07-12  Jie Zhang  <jie@codesourcery.com>
21568
21569         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
21570         align the stack when it's going to be saved.
21571
21572 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21573
21574         PR pch/14940
21575         * config/host-solaris.c (mmap_fixed): New function.
21576         (sol_gt_pch_get_address): Use it.
21577         (sol_gt_pch_use_address): Likewise.
21578
21579 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21580
21581         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
21582         pentiumpro on Solaris 8 and 9/x86.
21583         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
21584         Document SSE/SSE2 support.
21585         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
21586
21587 2010-07-12  Andi Kleen  <ak@linux.intel.com>
21588
21589         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
21590         instead of gcc_assert to print better error message for multiple
21591         prevailing defs.
21592
21593 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
21594
21595         * config/i386/i386.c (ix86_asm_output_function_label): Change format
21596         string placeholder from 0x%x to %#x.
21597         (ix86_code_end): Use putc to output '\n'.
21598         (ix86_print_operand) <case ';'>: Use putc to output ';'.
21599
21600 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
21601
21602         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
21603         in directive -export.
21604
21605 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
21606
21607         * reginfo.h (reg_classes_intersect_p): Change arguments type to
21608         reg_class_t.
21609         * rtl.h (reg_classes_intersect_p): Adjust prototype.
21610
21611         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
21612         Remove macros.
21613         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
21614         rs6000_memory_move_cost): Remove
21615         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
21616         TARGET_MEMORY_MOVE_COST): Define.
21617         (rs6000_register_move_cost): Make static. Change arguments type from
21618         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
21619         (rs6000_memory_move_cost): Make static. Change arguments type from
21620         'enum reg_class' to reg_class_t.
21621
21622 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
21623
21624         PR middle-end/42505
21625         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
21626         lookup code into....
21627         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
21628         new functions.
21629         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
21630         * cfgloopanal.c (target_clobbered_regs): Define.
21631         (init_set_costs): Initialize target_clobbered_regs.
21632         (estimate_reg_pressure_cost): Add call_p argument.  When true,
21633         adjust the number of available registers to exclude the
21634         call-clobbered registers.
21635         * cfgloop.h (target_clobbered_regs): Declare.
21636         (estimate_reg_pressure_cost): Adjust declaration.
21637         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
21638         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
21639         (determine_set_costs): Dump target_clobbered_regs.
21640         (loop_body_includes_call): New function.
21641         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
21642         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
21643         call_p flag through.
21644         (best_gain_for_invariant): Likewise.
21645         (find_invariants_to_move): Likewise.
21646         (move_single_loop_invariants): Likewise, using already-computed
21647         has_call field.
21648
21649 2010-07-10  Richard Guenther  <rguenther@suse.de>
21650             Joern Rennecke  <joern.rennecke@embecosm.com>
21651
21652         PR debug/44832
21653         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
21654         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
21655         unless they have DECL_IGNORED_P set.
21656
21657 2010-07-10  Richard Guenther  <rguenther@suse.de>
21658
21659         PR lto/44889
21660         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
21661         helper function.
21662         (gimple_types_compatible_p): Similar to pointed-to
21663         types allow and merge a mix of complete and incomplete aggregate.
21664         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
21665         (iterative_hash_gimple_type): Adjust for that.
21666
21667 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
21668
21669         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
21670
21671 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
21672
21673         PR objc/44140
21674         * config/darwin.c (output_objc_section_asm_op): Save and restore
21675         section when outputting ObjC section list.
21676
21677 2010-07-09  Jan Hubicka  <jh@suse.cz>
21678
21679         * lto-streamer-out.c (produce_symtab): Do not write alias
21680         cgraph/varpool nodes.
21681
21682 2010-07-09  Jan Hubicka  <jh@suse.cz>
21683
21684         * tree-inline.c (declare_return_variable): Fix ICE while
21685         inlining DECL_BY_VALUE function not in SSA form
21686
21687 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
21688
21689         PR tree-optimization/44576
21690         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
21691         New.  Pull out from is_loop_prefetching_profitable to implement
21692         the trip count to ahead ratio heuristic.
21693         (mem_ref_count_reasonable_p): New.  Pull out from
21694         is_loop_prefetching_profitable to implement the instruction to
21695         memory reference ratio heuristic.  Also consider not reasonable if
21696         the memory reference count is above a threshold (to avoid
21697         explosive compilation time.
21698         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
21699         is_loop_prefetching_profitable to implement the instruction to
21700         prefetch ratio heuristic.
21701         (is_loop_prefetching_profitable): Removed.
21702         (loop_prefetch_arrays): Distribute the cost analysis across the
21703         function to allow early exit of the prefetch analysis.
21704         is_loop_prefetching_profitable is splitted into three functions,
21705         with each one called as early as possible.
21706         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
21707         number of memory references in a loop is considered too many.
21708
21709 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
21710
21711         * reload.c (find_reloads): Don't clear badop if we have a winreg
21712         alternative, but not win, and the class only has fixed regs.
21713         * hard-reg-set.h (class_only_fixed_regs): Declare.
21714         * reginfo.c (class_only_fixed_regs): New array.
21715         (init_reg_sets_1): Initialize it.
21716         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
21717         discourage alternatives using the stack pointer.
21718
21719         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
21720
21721         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
21722
21723         * config/arm/arm.md (cbranchqi4): Fix array size.
21724         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
21725         calculating length.
21726
21727 2010-07-09  Richard Guenther  <rguenther@suse.de>
21728
21729         * gimple.c (struct type_fixup_s): New struct and VEC type.
21730         (gimple_register_type_fixups): New static global.
21731         (gimple_queue_type_fixup): New function.
21732         (gimple_types_compatible_p): Queue type fixups instead of
21733         applying them here.
21734         (gimple_register_type): Apply queued fixups for the
21735         canonical type.  Empty the type fixup queue.
21736
21737 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
21738
21739         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
21740         * configure: Regenerate.
21741         * config.in: Ditto.
21742
21743 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
21744             Denys Vlasenko  <dvlasenk@redhat.com>
21745             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
21746
21747         PR tree-optimization/28632
21748         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
21749         (extract_range_from_binary_expr): Further optimize
21750         BIT_AND_EXPR and BIT_IOR_EXPR.
21751
21752 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
21753
21754         * tree-if-conv.c (fold_or_predicates): New.
21755         (add_to_predicate_list): Call it.
21756
21757 2010-07-09  Richard Guenther  <rguenther@suse.de>
21758
21759         PR middle-end/44890
21760         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
21761         if base is a pointer.
21762         * tree-cfg.c (verify_expr): Update MEM_REF checking.
21763
21764 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
21765
21766         PR target/44877
21767         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
21768         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
21769         builtin mask for load/store builtins.
21770
21771 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
21772
21773         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
21774         for "lock addl".
21775         * configure: Regenerate.
21776         * config/i386/i386.c (ix86_print_operand) <case ';'>:
21777         Remove TARGET_MACHO.
21778
21779 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
21780
21781         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
21782         default ISA flags.
21783         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
21784
21785 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
21786
21787         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
21788
21789 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
21790
21791         * config/picochip/picochip.md (commsTestPort): Emit more
21792         efficient sequence for tstport instruction.
21793
21794 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
21795
21796         * config/i386/i386.c (ix86_veclib_handler): Make static.
21797
21798 2010-07-09  Richard Guenther  <rguenther@suse.de>
21799
21800         PR tree-optimization/44852
21801         * tree-ssa-alias.c: Include toplev.h for exact_log2.
21802         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
21803         in MEM_REF.
21804         (indirect_refs_may_alias_p): Likewise.
21805         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
21806
21807 2010-07-09  Richard Guenther  <rguenther@suse.de>
21808
21809         PR tree-optimization/44882
21810         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
21811         sets do conflict.
21812         (vectorizable_load): Likewise.
21813
21814 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
21815
21816         PR target/40657
21817         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
21818         All callers changed.
21819         Handle the case when we're called for the epilogue.
21820         (thumb_unexpanded_epilogue): Use it.
21821         (thumb1_expand_epilogue): Likewise.
21822
21823 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
21824
21825         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
21826         both ranges are range_int_cst_p with non-negative minimum,
21827         try harder to derive smaller range.
21828
21829 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21830
21831         * genrecog.c: Include diagnostic-core.h before toplev.h.
21832         * genoutput.c: Likewise.
21833         * genextract.c: Likewise.
21834         * genautomata.c: Likewise.
21835         * genemit.c: Likewise.
21836         * genpeep.c: Likewise.
21837         * genattrtab.c: Likewise.
21838         * genconditions.c: Likewise.
21839         * genpreds.c: Likewise.
21840
21841 2010-07-08  Andi Kleen  <ak@linux.intel.com>
21842
21843         * lto-section-in.c (lto_section_name): Add missing comma.
21844
21845 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
21846
21847         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
21848         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
21849         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
21850         (ia64_override_options): Rename to...
21851         (ia64_option_override): ... this one. Make static.
21852
21853 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
21854
21855         PR middle-end/44843
21856         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
21857         pointed-to type of the offset in a MEM_REF to compute the alignment.
21858
21859 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
21860
21861         * final.c (final_scan_insn): Replace
21862         TARGET_UNWIND_INFO macro check by unwind_emit
21863         hook NULL check.
21864         * targhooks.c (default_unwind_emit): Removed.
21865         * targhooks.h (default_unwind_emit): Likewise.
21866         * target.def (unwind_emit): Set default value to NULL.
21867
21868         * config/i386/i386-protos.h (ix86_asm_output_function_label):
21869         New prototype.
21870         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
21871         for NULL fntype argument and allow 64-bit targets.
21872         (ix86_asm_output_function_label): New function.
21873         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
21874         (ix86_handle_fndecl_attribute): Likewise.
21875         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
21876         * doc/doc/tm.texi: Regenerated.
21877         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
21878         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
21879         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
21880         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
21881         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
21882         * config/elfos.h: Likewise.
21883         * config/i386/cygming.h: Likewise.
21884         * config/netbsd-aout.h: Likewise.
21885         * config/openbsd.h: Likewise.
21886         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
21887         by ix86_asm_output_function_label function call.
21888         * varasm.c (assemble_start_function): Use
21889         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
21890
21891 2010-07-08  Jan Hubicka  <jh@suse.cz>
21892
21893         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
21894         New function.
21895         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
21896         Declare.
21897         * ipa-cp.c (ipcp_estimate_growth): Use it.
21898         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
21899         Likewise.
21900
21901 2010-07-08  Jan Hubicka  <jh@suse.cz>
21902
21903         * tree-inline.c (declare_return_variable): Allocate annotation for new
21904         temporary.
21905
21906 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
21907
21908         PR tree-optimization/44710
21909         * tree-if-conv.c (parse_predicate): New.
21910         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
21911         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
21912
21913 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
21914
21915         * common.opt (ftree-loop-if-convert): New flag.
21916         * doc/invoke.texi (ftree-loop-if-convert): Documented.
21917         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
21918         when flag_tree_loop_if_convert is set.
21919
21920 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
21921
21922         * config/i386/i386.c: Use short syntax for function calls
21923         through function pointers.
21924         * config/i386/i386.md: Ditto.
21925
21926 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
21927
21928         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
21929
21930 2010-07-08  Richard Guenther  <rguenther@suse.de>
21931
21932         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
21933         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
21934
21935 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
21936
21937         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
21938         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
21939         (loc_list_from_tree): Likewise.
21940         (output_loc_operands): Handle outputting DW_OP_const[48]u
21941         with loc->dtprel set.
21942         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
21943
21944 2010-07-08  Jan Hubicka  <jh@suse.cz>
21945
21946         * ipa.c: Include pointer-set.h
21947         (cgraph_externally_visible_p): New attribute ALIASED;
21948         when in LTO, hidden symbols are local unless they are aliased.
21949         (function_and_variable_visibility): Compute aliased nodes;
21950         handle LTO and hidden symbol on functions and vars.
21951         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
21952         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
21953
21954 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
21955
21956         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
21957         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21958         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21959         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21960         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21961         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
21962         (ix86_gen_probe_stack_range): Likewise.
21963         (override_options): Set them.
21964         (ix86_target_stack_probe): New function.
21965         (ix86_compute_frame_layout): Force use of push instructions to
21966         save registers if stack checking with probes is enabled.
21967         (get_scratch_register_on_entry): New function.
21968         (release_scratch_register_on_entry): Likewise.
21969         (ix86_adjust_stack_and_probe): Likewise.
21970         (output_adjust_stack_and_probe): Likewise.
21971         (ix86_emit_probe_stack_range): Likewise.
21972         (output_probe_stack_range): Likewise.
21973         (ix86_expand_prologue): Emit stack checking code if static built-in
21974         stack checking is enabled.
21975         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
21976         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
21977         (output_adjust_stack_and_probe): Likewise.
21978         (output_probe_stack_range): Likewise.
21979         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
21980         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
21981         TARGET_STACK_PROBE.
21982         (allocate_stack_worker_64): Likewise.
21983         (allocate_stack): Likewise.
21984         (adjust_stack_and_probe): New insn.
21985         (probe_stack_range): Likewise.
21986
21987 2010-07-08  Richard Guenther  <rguenther@suse.de>
21988
21989         PR tree-optimization/44831
21990         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
21991         a MEM_REF preserving TBAA info of the original dereference.
21992         Dereference the original pointer if the address is not invariant.
21993         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
21994         at least one invariant address that we are going to dereference.
21995
21996 2010-07-08  Richard Guenther  <rguenther@suse.de>
21997
21998         PR tree-optimization/44861
21999         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
22000         information when building MEM_REFs.
22001         (vectorizable_load): Likewise.
22002         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
22003
22004 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
22005
22006         * config/sol2-c.c: Do not include diagnostic-core.h.
22007
22008 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22009
22010         PR bootstrap/44768
22011         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
22012         with respect to current_function_decl. Pass decl of the function.
22013         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
22014         * ipa-inline.c (compute_inline_parameters): Pass decl to
22015         estimated_stack_frame_size.
22016
22017 2010-07-08  Richard Guenther  <rguenther@suse.de>
22018
22019         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
22020         New function.
22021         (valueize_refs): Call it.
22022
22023 2010-07-08  Richard Guenther  <rguenther@suse.de>
22024
22025         PR rtl-optimization/44838
22026         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
22027         SSA form do not use pointer equivalence.
22028
22029 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
22030
22031         * dwarf2out.c (AT_linkage_name): Delete.
22032         (add_linkage_attr): New function.
22033         (add_linkage_name): Call it to emit the linkage attribute.
22034         (dwarf2out_finish): Likewise.
22035         (move_linkage_attr): Explicitly accept both attribute variants.
22036
22037 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22038
22039         * toplev.h: Do not include diagnostic-core.h.
22040         Include diagnostic-core.h in every file that includes toplev.h.
22041         * c-tree.h: Do not include toplev.h.
22042         * pretty-print.h: Update comment.
22043         * Makefile.in: Update dependencies.
22044         * alias.c: Include diagnostic-core.h in every file that includes
22045         toplev.h.
22046         * attribs.c: Likewise.
22047         * auto-inc-dec.c: Likewise.
22048         * bb-reorder.c: Likewise.
22049         * bt-load.c: Likewise.
22050         * caller-save.c: Likewise.
22051         * calls.c: Likewise.
22052         * cfg.c: Likewise.
22053         * cfganal.c: Likewise.
22054         * cfgbuild.c: Likewise.
22055         * cfgcleanup.c: Likewise.
22056         * cfghooks.c: Likewise.
22057         * cfgloop.c: Likewise.
22058         * combine.c: Likewise.
22059         * config/alpha/alpha.c: Likewise.
22060         * config/arc/arc.c: Likewise.
22061         * config/arm/arm.c: Likewise.
22062         * config/arm/pe.c: Likewise.
22063         * config/avr/avr.c: Likewise.
22064         * config/bfin/bfin.c: Likewise.
22065         * config/cris/cris.c: Likewise.
22066         * config/crx/crx.c: Likewise.
22067         * config/darwin-c.c: Likewise.
22068         * config/darwin.c: Likewise.
22069         * config/fr30/fr30.c: Likewise.
22070         * config/frv/frv.c: Likewise.
22071         * config/h8300/h8300.c: Likewise.
22072         * config/host-darwin.c: Likewise.
22073         * config/i386/i386.c: Likewise.
22074         * config/i386/netware.c: Likewise.
22075         * config/i386/nwld.c: Likewise.
22076         * config/i386/winnt-cxx.c: Likewise.
22077         * config/i386/winnt-stubs.c: Likewise.
22078         * config/i386/winnt.c: Likewise.
22079         * config/ia64/ia64-c.c: Likewise.
22080         * config/ia64/ia64.c: Likewise.
22081         * config/iq2000/iq2000.c: Likewise.
22082         * config/lm32/lm32.c: Likewise.
22083         * config/m32c/m32c-pragma.c: Likewise.
22084         * config/m32c/m32c.c: Likewise.
22085         * config/m32r/m32r.c: Likewise.
22086         * config/m68hc11/m68hc11.c: Likewise.
22087         * config/m68k/m68k.c: Likewise.
22088         * config/mcore/mcore.c: Likewise.
22089         * config/mep/mep-pragma.c: Likewise.
22090         * config/mep/mep.c: Likewise.
22091         * config/mmix/mmix.c: Likewise.
22092         * config/mn10300/mn10300.c: Likewise.
22093         * config/moxie/moxie.c: Likewise.
22094         * config/pa/pa.c: Likewise.
22095         * config/pdp11/pdp11.c: Likewise.
22096         * config/picochip/picochip.c: Likewise.
22097         * config/rs6000/rs6000-c.c: Likewise.
22098         * config/rs6000/rs6000.c: Likewise.
22099         * config/rx/rx.c: Likewise.
22100         * config/s390/s390.c: Likewise.
22101         * config/score/score.c: Likewise.
22102         * config/score/score3.c: Likewise.
22103         * config/score/score7.c: Likewise.
22104         * config/sh/sh.c: Likewise.
22105         * config/sh/symbian-base.c: Likewise.
22106         * config/sh/symbian-c.c: Likewise.
22107         * config/sh/symbian-cxx.c: Likewise.
22108         * config/sol2-c.c: Likewise.
22109         * config/sol2.c: Likewise.
22110         * config/sparc/sparc.c: Likewise.
22111         * config/spu/spu.c: Likewise.
22112         * config/stormy16/stormy16.c: Likewise.
22113         * config/v850/v850-c.c: Likewise.
22114         * config/v850/v850.c: Likewise.
22115         * config/vax/vax.c: Likewise.
22116         * config/vxworks.c: Likewise.
22117         * config/xtensa/xtensa.c: Likewise.
22118         * convert.c: Likewise.
22119         * cse.c: Likewise.
22120         * cselib.c: Likewise.
22121         * dbgcnt.c: Likewise.
22122         * dbxout.c: Likewise.
22123         * ddg.c: Likewise.
22124         * dominance.c: Likewise.
22125         * emit-rtl.c: Likewise.
22126         * explow.c: Likewise.
22127         * expmed.c: Likewise.
22128         * fixed-value.c: Likewise.
22129         * fold-const.c: Likewise.
22130         * fwprop.c: Likewise.
22131         * gcse.c: Likewise.
22132         * ggc-common.c: Likewise.
22133         * ggc-page.c: Likewise.
22134         * ggc-zone.c: Likewise.
22135         * gimple-low.c: Likewise.
22136         * gimplify.c: Likewise.
22137         * graph.c: Likewise.
22138         * haifa-sched.c: Likewise.
22139         * ifcvt.c: Likewise.
22140         * implicit-zee.c: Likewise.
22141         * integrate.c: Likewise.
22142         * ira-build.c: Likewise.
22143         * ira-color.c: Likewise.
22144         * ira-conflicts.c: Likewise.
22145         * ira-costs.c: Likewise.
22146         * ira-lives.c: Likewise.
22147         * ira.c: Likewise.
22148         * lists.c: Likewise.
22149         * loop-doloop.c: Likewise.
22150         * loop-iv.c: Likewise.
22151         * lto-opts.c: Likewise.
22152         * lto-symtab.c: Likewise.
22153         * main.c: Likewise.
22154         * modulo-sched.c: Likewise.
22155         * optabs.c: Likewise.
22156         * params.c: Likewise.
22157         * plugin.c: Likewise.
22158         * postreload-gcse.c: Likewise.
22159         * postreload.c: Likewise.
22160         * predict.c: Likewise.
22161         * profile.c: Likewise.
22162         * real.c: Likewise.
22163         * regcprop.c: Likewise.
22164         * reginfo.c: Likewise.
22165         * regmove.c: Likewise.
22166         * reorg.c: Likewise.
22167         * resource.c: Likewise.
22168         * rtl.c: Likewise.
22169         * rtlanal.c: Likewise.
22170         * sched-deps.c: Likewise.
22171         * sched-ebb.c: Likewise.
22172         * sched-rgn.c: Likewise.
22173         * sdbout.c: Likewise.
22174         * sel-sched-dump.c: Likewise.
22175         * sel-sched-ir.c: Likewise.
22176         * simplify-rtx.c: Likewise.
22177         * stmt.c: Likewise.
22178         * stor-layout.c: Likewise.
22179         * store-motion.c: Likewise.
22180         * targhooks.c: Likewise.
22181         * tree-cfg.c: Likewise.
22182         * tree-cfgcleanup.c: Likewise.
22183         * tree-dump.c: Likewise.
22184         * tree-eh.c: Likewise.
22185         * tree-inline.c: Likewise.
22186         * tree-nomudflap.c: Likewise.
22187         * tree-object-size.c: Likewise.
22188         * tree-optimize.c: Likewise.
22189         * tree-outof-ssa.c: Likewise.
22190         * tree-phinodes.c: Likewise.
22191         * tree-profile.c: Likewise.
22192         * tree-ssa-ccp.c: Likewise.
22193         * tree-ssa-coalesce.c: Likewise.
22194         * tree-ssa-live.c: Likewise.
22195         * tree-ssa-loop-niter.c: Likewise.
22196         * tree-ssa-loop-prefetch.c: Likewise.
22197         * tree-ssa-loop.c: Likewise.
22198         * tree-ssa-structalias.c: Likewise.
22199         * tree-ssa-uninit.c: Likewise.
22200         * tree-ssa.c: Likewise.
22201         * tree-vect-data-refs.c: Likewise.
22202         * tree-vect-loop-manip.c: Likewise.
22203         * tree-vect-loop.c: Likewise.
22204         * tree-vect-patterns.c: Likewise.
22205         * tree-vect-stmts.c: Likewise.
22206         * tree-vrp.c: Likewise.
22207         * varasm.c: Likewise.
22208         * vec.c: Likewise.
22209         * web.c: Likewise.
22210         * xcoffout.c: Likewise.
22211
22212 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
22213
22214         * gengtype.c (write_field_root): New function.
22215         (write_root): Use it.
22216
22217 2010-07-07  Wei Guozhi  <carrot@google.com>
22218
22219         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
22220         of lowest bits to lshift/compare): Add a missing line.
22221
22222 2010-07-07  Wei Guozhi  <carrot@google.com>
22223
22224         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
22225         of lowest bits to lshift/compare): New.
22226
22227 2010-07-07  Tom Tromey  <tromey@redhat.com>
22228
22229         * doc/tm.texi: Update.
22230         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
22231         Add @hook.
22232         * target.def (want_debug_pub_sections): New hook.
22233         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
22234         * dwarf2out.c (add_pubname_string): Check
22235         targetm.want_debug_pub_sections.
22236         (add_pubname): Likewise.
22237         (add_pubtype): Likewise.
22238
22239 2010-07-07  Jie Zhang  <jie@codesourcery.com>
22240
22241         * genautomata.c (output_automata_list_min_issue_delay_code):
22242         Correctly decompress min_issue_delay.
22243
22244 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
22245
22246         PR rtl-optimization/44404
22247         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
22248         possible, use reg_overlap_mentioned_p instead.
22249
22250 2010-07-07  Duncan Sands  <baldrick@free.fr>
22251
22252         PR middle-end/41355
22253         * tree.c (build_function_type_skip_args): Copy the original type using
22254         build_distinct_type_copy rather than copy_node.
22255
22256 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
22257
22258         PR target/44850
22259         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
22260         revision 161876.
22261         (ix86_expand_prologue): Likewise.
22262         (ix86_handle_fndecl_attribute): Likewise.
22263         (ix86_asm_declare_function_name): Likewise.
22264         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
22265         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
22266         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
22267         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
22268         * doc/extend.texi: Likewise.
22269
22270 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
22271
22272         PR target/44844
22273         * config/i386/i386.md (rdrand<mode>): Changed to expand to
22274         retry if the carry flag isn't valid.
22275         (rdrand<mode>_1): New.
22276
22277 2010-07-07  Richard Guenther  <rguenther@suse.de>
22278
22279         PR middle-end/44790
22280         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
22281         for expanding the constant offset for MEM_REFs.
22282
22283 2010-07-07  Richard Guenther  <rguenther@suse.de>
22284
22285         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
22286         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
22287         * gimple.h (is_gimple_operand): Remove.
22288         * gimple.c (is_gimple_operand): Likewise.
22289         (walk_gimple_op): Fix wi->val_only setting for calls.
22290         * tree-cfg.c (verify_gimple_call): Fix argument validation.
22291         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
22292         invalid gimple calls.
22293
22294 2010-07-06  Jan Hubicka  <jh@suse.cz>
22295
22296         * lto-cgraph.c (output_cgraph): Add missing declaration.
22297
22298 2010-07-06  Jan Hubicka  <jh@suse.cz>
22299
22300         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
22301         partition.
22302
22303 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
22304
22305         * doc/gimple.texi (GIMPLE_DEBUG): Document.
22306         * doc/rtl.texi (Debug Information): New node.
22307         (NOTE_INSN_VAR_LOCATION): Document.
22308         (debug_insn): Likewise.
22309         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
22310
22311 2010-07-07  Jan Hubicka  <jh@suse.cz>
22312
22313         With parts by Richard Guenther.
22314
22315         PR middle-end/44813
22316         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
22317         for functions passed by reference.
22318         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
22319         in memory when passed by reference.
22320         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
22321         beggining.
22322         * ipa-split.c (split_function): Cleanup way return value is passed;
22323         handle SSA DECL_BY_REFERENCE retvals.
22324         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
22325         DECL_BY_REFERENCE is set.
22326         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
22327         find_what_p_points_to): Handle RESULT_DECL.
22328         * tree-inline.c (declare_return_variable): Get new entry_block argument;
22329         when passing by reference ensure that RESULT_DECL is gimple_val.
22330         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
22331         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
22332
22333 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
22334
22335         PR rtl-optimization/44787
22336         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
22337         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
22338
22339 2010-07-06  Jan Hubicka  <jh@suse.cz>
22340
22341         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
22342         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
22343         with body can prevail.
22344         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
22345         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
22346         * cgraph.c (cgraph_get_node_or_alias): New function.
22347         * cgraph.h (cgraph_get_node_or_alias): Declare.
22348
22349 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
22350
22351         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
22352         support.
22353         (ix86_expand_prologue): Likewise.
22354         (ix86_handle_fndecl_attribute): Likewise.
22355         (ix86_asm_declare_function_name): New function for
22356         ASM_DECLARE_FUNCTION_NAME.
22357         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
22358         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
22359         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
22360         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
22361         * doc/extend.texi: Adjust documentation about ms_hook_prologue
22362         attribute.
22363
22364 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
22365
22366         * config/i386/i386.md (immediate_operand): New mode attribute.
22367
22368         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
22369         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
22370         using P mode iterator.
22371         (pro_epilogue_adjust_stack_di_2): Rename from
22372         pro_epilogue_adjust_stack_rex64_2.
22373
22374         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
22375
22376 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
22377
22378         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
22379         through gen_mov_insv_1 function pointer.
22380         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
22381         gen_truncxf<mode>2 through gen_truncxf function pointer.
22382         (remainder<mode>3): Ditto.
22383         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
22384         (allocate_stack): Call gen_allocate_stack_worker_64 or
22385         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
22386         function pointer.
22387         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
22388         function pointer.
22389
22390 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
22391
22392         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
22393         operand constraint instead of <r><i>m.
22394
22395 2010-07-06  Richard Guenther  <rguenther@suse.de>
22396
22397         PR middle-end/44828
22398         * convert.c (convert_to_integer): Watch out for overflowing
22399         MULT_EXPR as well.
22400
22401 2010-07-05  Jan Hubicka  <jh@suse.cz>
22402
22403         * lto-streamer.c (write_symbol_vec): Rename to ...
22404         (write_symbol) ... this one; write only symbol given and when
22405         present in cache. Sanity check that what is defined is present
22406         in cgraph/varpool with body/finalized decl.
22407         (write_symbols_of_kind): Remove.
22408         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
22409         pairs to produce symtab.
22410         (produce_asm_for_decls): Update call of produce_symtab; don't do so
22411         when doing WPA streaming.
22412
22413 2010-07-05  Jan Hubicka  <jh@suse.cz>
22414
22415         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
22416         function is still available to fold into.
22417
22418 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
22419
22420         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
22421         * function.h (struct_function): Change type of local_decls field
22422         to a VEC.
22423         (add_local_decl): New function.
22424         (FOR_EACH_LOCAL_DECL): New macro.
22425         * cfgexpand.c (init_vars_expansion): Adjust for new type of
22426         cfun->local_decls.
22427         (estimated_stack_frame_size): Likewise.
22428         (expand_used_vars): Likewise.
22429         * cgraphbuild.c (build_cgraph_edges): Likewise.
22430         * function.c (instantiate_decls_1): Likewise.
22431         * ipa-struct-reorg.c (build_data_structure): Likewise.
22432         * ipa-type-escape.c (analyze_function): Likewise.
22433         * lto-streamer-in.c (input_function): Likewise.
22434         * lto-streamer-out.c (output_function): Likewise.
22435         * tree-ssa-live.c (remove_unused_locals): Likewise.
22436         * tree.c (free_lang_data_in_decl): Likewise.
22437         (find_decls_types_in_node): Likewise.
22438         * omp-low.c (remove_exit_barrier): Likewise.
22439         (expand_omp_taskreg): Likewise.
22440         (list2chain): Rename to...
22441         (vec2chain): ...this.  Adjust.
22442         * cgraphunit.c (assemble_thunk): Call add_local_decl.
22443         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
22444         * gimple-low.c (record_vars_into): Likewise.
22445         * tree-inline.c (remap_decls): Likewise.
22446         (declare_return_variable): Likewise.
22447         (declare_inline_vars): Likewise.
22448         (copy_forbidden): Adjust for new type of cfun->local_decls.
22449         (add_local_variables): New function.
22450         (expand_call_inline): Call it.
22451         (tree_function_versioning): Likewise.
22452
22453 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
22454
22455         AVX Programming Reference (June, 2010)
22456         * config/i386/cpuid.h (bit_F16C): New.
22457         (bit_RDRND): Likewise.
22458         (bit_FSGSBASE): Likewise.
22459
22460         * config/i386/i386-builtin-types.def: Add
22461         "DEF_FUNCTION_TYPE (UINT16)", function types for
22462         float16 <-> float conversions and
22463         "DEF_FUNCTION_TYPE (VOID, UINT64)".
22464
22465         * config/i386/i386-c.c (ix86_target_macros_internal): Support
22466         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
22467         OPTION_MASK_ISA_F16C.
22468
22469         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
22470         (OPTION_MASK_ISA_RDRND_SET): Likewise.
22471         (OPTION_MASK_ISA_F16C_SET): Likewise.
22472         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
22473         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
22474         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
22475         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
22476         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
22477         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
22478         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
22479         (override_options): Handle them.
22480         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
22481         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
22482         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
22483         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
22484         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
22485         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
22486         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
22487         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
22488         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
22489         (bdesc_args): Likewise.
22490         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
22491         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
22492         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
22493         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
22494         Handle non-memory store.
22495
22496         * config/i386/i386.h (TARGET_FSGSBASE): New.
22497         (TARGET_RDRND): Likewise.
22498         (TARGET_F12C): Likewise.
22499
22500         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
22501         (UNSPEC_VCVTPS2PH): Likewise.
22502         (UNSPECV_RDFSBASE): Likewise.
22503         (UNSPECV_RDGSBASE): Likewise.
22504         (UNSPECV_WRFSBASE): Likewise.
22505         (UNSPECV_WRGSBASE): Likewise.
22506         (UNSPECV_RDRAND): Likewise.
22507         (rdfsbase<mode>): Likewise.
22508         (rdgsbase<mode>): Likewise.
22509         (wrfsbase<mode>): Likewise.
22510         (wrgsbase<mode>): Likewise.
22511         (rdrand<mode>): Likewise.
22512
22513         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
22514
22515         * config/i386/immintrin.h (_rdrand_u16): New.
22516         (_rdrand_u32): Likewise.
22517         (_readfsbase_u32): Likewise.
22518         (_readfsbase_u64): Likewise.
22519         (_readgsbase_u32): Likewise.
22520         (_readgsbase_u64): Likewise.
22521         (_writefsbase_u32): Likewise.
22522         (_writefsbase_u64): Likewise.
22523         (_writegsbase_u32): Likewise.
22524         (_writegsbase_u64): Likewise.
22525         (_rdrand_u64): Likewise.
22526         (_cvtsh_ss): Likewise.
22527         (_mm_cvtph_ps): Likewise.
22528         (_mm256_cvtph_ps): Likewise.
22529         (_cvtss_sh): Likewise.
22530         (_mm_cvtps_ph): Likewise.
22531         (_mm256_cvtps_ph): Likewise.
22532
22533         * config/i386/sse.md (vcvtph2ps): New.
22534         (*vcvtph2ps_load): Likewise.
22535         (vcvtph2ps256): Likewise.
22536         (vcvtps2ph): Likewise.
22537         (*vcvtps2ph): Likewise.
22538         (*vcvtps2ph_store): Likewise.
22539         (vcvtps2ph256): Likewise.
22540
22541         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
22542
22543         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
22544
22545 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
22546
22547         PR bootstrap/44512
22548         * genenums.c (main): Output include of insn-constants.h
22549         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
22550
22551 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
22552
22553         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
22554         (override_options): Initialize it.
22555         (ix86_expand_prologue): Use it.
22556
22557 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
22558
22559         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
22560
22561 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
22562
22563         * double-int.h (fit_double_type): Remove declaration.
22564         * double-int.c (fit_double_type): Remove function.
22565         * tree.h (int_fits_type_p): Adjust prototype.
22566         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
22567         instead of fit_double_type.
22568         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
22569         instead of fit_double_type and build_int_cst_wide.
22570         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
22571         instead of fit_double_type and build_int_cst_wide.
22572         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
22573         of fit_double_type.
22574
22575 2010-07-05  Jan Hubicka  <jh@suse.cz>
22576
22577         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
22578         in_other_partition.
22579         * lto-cgraph.c (referenced_from_other_partition_p,
22580         reachable_from_other_partition_p): Use in_other_partition flags.
22581         (output_node, output_varpool_node): COMDAT nodes always have private
22582         copies and thus are never used from other partition.
22583
22584 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
22585
22586         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
22587         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
22588         * config/ia64/ia64.c Include reload.h.
22589         (ia64_memory_move_cost): New function.
22590         (TARGET_MEMORY_MOVE_COST): Define.
22591         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
22592         memory_move_cost.
22593
22594 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
22595
22596         PR middle-end/42505
22597         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
22598         comments about cost model.
22599         (try_add_cand_for):  Add second strategy for choosing initial set
22600         based on original IVs, controlled by ORIGINALP argument.
22601         (get_initial_solution): Add ORIGINALP argument.
22602         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
22603         (find_optimal_iv_set): Try two different strategies for choosing
22604         the IV set, and return the one with lower cost.
22605
22606 2010-07-05  Richard Guenther  <rguenther@suse.de>
22607
22608         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
22609
22610 2010-07-05  Richard Guenther  <rguenther@suse.de>
22611
22612         * tree.c (reference_alias_ptr_type): New function.
22613         * tree.h (reference_alias_ptr_type): Declare.
22614         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
22615         allow non-TARGET_MEM_REF new refs.
22616         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
22617         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
22618         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
22619         (create_mem_ref): Get alias pointer type.  Adjust calls to
22620         create_mem_ref_raw.
22621         (maybe_fold_tmr): Likewise.
22622         * tree-flow.h (create_mem_ref): Adjust prototype.
22623
22624 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
22625
22626         PR c++/44808
22627         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
22628         *from_p is VAR_DECL.
22629
22630 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
22631
22632         * tree.h (build_call_list): Remove.
22633         * tree.c (build_call_list): Remove.
22634
22635 2010-07-05  Richard Guenther  <rguenther@suse.de>
22636
22637         * double-int.h (double_int_sub): Declare.
22638         * double-int.c (double_int_sub): New function.
22639         * dwarf2out.c (field_byte_offset): Use it.
22640         * fixed-value.c (do_fixed_add): Likewise.
22641         (do_fixed_multiply): Likewise.
22642         (do_fixed_divide): Likewise.
22643         * tree-predcom.c (add_ref_to_chain): Likewise.
22644         (determine_roots_comp): Likewise.
22645         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
22646
22647 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
22648
22649         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
22650         implementations.
22651
22652 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
22653
22654         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
22655         * arm-modes.def (CC_NOTB): Don't define.
22656         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
22657         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
22658         (LTUGEU): New code_iterator.
22659         (cnb, optab): New corresponding code_attrs.
22660         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
22661         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
22662         using LTUGEU.
22663         (addsi3_carryin_shift_<optab>): Likewise.
22664         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
22665         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
22666         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
22667         (subsi3_compare): Renamed from subsi3_compare0_c.
22668         Change CC_NOTB to CC.
22669         (arm_subsi3_insn): Allow constants for operand 0.
22670         (compare_scc peephole for eq case): New.
22671         (compare_scc splitters): Change CC_NOTB to CC.
22672
22673 2010-07-05  Richard Guenther  <rguenther@suse.de>
22674
22675         * tree-ssa-loop-im.c (for_each_index): Do not handle
22676         ALIGN_INDIRECT_REF.
22677         (gen_lsm_tmp_name): Likewise.
22678         * tree-dump.c (dequeue_and_dump): Likewise.
22679         * tree-pretty-print.c (dump_generic_node): Likewise.
22680         (op_code_prio): Likewise.
22681         (op_symbol_code): Likewise.
22682         * tree.c (staticp): Likewise.
22683         (build1_stat): Likewise.
22684         * tree.h (INDIRECT_REF_P): Likewise.
22685         * fold-const.c (maybe_lvalue_p): Likewise.
22686         (operand_equal_p): Likewise.
22687         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
22688         (ao_ref_init_from_vn_reference): Likewise.
22689         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
22690         (find_interesting_uses_address): Likewise.
22691         * dwarf2out.c (loc_list_from_tree): Likewise.
22692         * gimplify.c (gimplify_expr): Likewise.
22693         * tree-eh.c (tree_could_trap_p): Likewise.
22694         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
22695         * cfgexpand.c (expand_debug_expr): Likewise.
22696         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
22697         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
22698         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
22699         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
22700         * tree-ssa-operands.c (get_expr_operands): Likewise.
22701         * expr.c (safe_from_p): Likewise.
22702         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
22703         * tree-vect-data-refs.c (vect_setup_realignment): Build
22704         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
22705         * tree-vect-stmts.c (vectorizable_load): Likewise.
22706         * tree.def (ALIGN_INDIRECT_REF): Remove.
22707
22708 2010-07-05  Richard Guenther  <rguenther@suse.de>
22709
22710         PR tree-optimization/44784
22711         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
22712         for inserted stmts.
22713         (find_or_generate_expression): Fix SCCVN insertion check.
22714
22715 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
22716
22717         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
22718         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
22719         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
22720         directives.
22721
22722 2010-07-05  Ira Rosen  <irar@il.ibm.com>
22723
22724         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
22725         statements that are not vectorized.
22726         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
22727         in INSIDE_COST.
22728
22729 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
22730
22731         PR bootstrap/44820
22732         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
22733
22734 2010-07-05  Richard Guenther  <rguenther@suse.de>
22735
22736         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
22737         RESULT_DECLs properly.
22738
22739 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
22740
22741         PR rtl-optimization/44695
22742         * config/i386/i386.md (extract_code): Removed.
22743         (<u>divmodqi4): Likewise.
22744         (divmodqi4): New.
22745         (udivmodqi4): Likewise.
22746         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
22747         (udivmodhiqi3): Likewise.
22748
22749 2010-07-04  Jan Hubicka  <jh@suse.cz>
22750
22751         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
22752
22753 2010-07-04  Jan Hubicka  <jh@suse.cz>
22754
22755         * cgraphunit.c (init_cgraph): Only initialize dump file if it
22756         is not already initialized.
22757
22758 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
22759
22760         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
22761         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
22762         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
22763         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
22764         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
22765         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
22766         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
22767         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
22768         (sync_new_nand_optab): Redefine as macros.
22769         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
22770         Delete.
22771         (direct_optab_index): New enum.
22772         (direct_optab_d): New structure.
22773         (direct_optab): New typedef.
22774         (direct_optab_table): Declare.
22775         (direct_optab_handler, set_direct_optab_handler): New functions.
22776         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
22777         (sync_lock_release_optab): New macros.
22778         * optabs.c (direct_optab_table): New variable.
22779         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
22780         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
22781         cmpstr_optab and cmpstrn_optab.
22782         (emit_conditional_move): Likewise for movcc_optab.
22783         (can_conditionally_move_p): Likewise for movcc_gen_code.
22784         (init_insn_codes): Clear direct_optab_table.
22785         (init_optabs): Don't initialize the new "direct optabs" here.
22786         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
22787         vcond_gen_code.
22788         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
22789         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
22790         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
22791         (expand_sync_operation): Likewise other sync_*_optabs.
22792         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
22793         to sync_compare_and_swap_optab.
22794         (expand_sync_lock_test_and_set): Use direct_optab_handler for
22795         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
22796         to the names of both.
22797         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
22798         cmpstr_optab and cmpstrn_optab.
22799         (expand_builtin_lock_release): Likewise sync_lock_release.
22800         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
22801         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
22802         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
22803         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
22804         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
22805         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
22806         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
22807         (sync_lock_test_and_set, sync_lock_release): Delete.
22808         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
22809         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
22810         * genopinit.c (optabs): Use set_direct_optab_handler for the new
22811         macro optabs.
22812         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
22813         the "optab" local variable.  Use direct_optab_handler for optab and
22814         sync_compare_and_swap_optab.
22815         * reload1.c (reload_in_optab, reload_out_optab): Delete.
22816         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
22817         reload_in_optab and reload_out_optab.
22818         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
22819         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
22820         * config/pa/pa.c (pa_secondary_reload): Likewise.
22821         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
22822         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
22823         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
22824         (VMSupportsCS8_builtin): Likewise.
22825
22826 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
22827
22828         * optabs.h (optab_handlers): Change type of insn_code to int.
22829         (optab_handler, set_optab_handler, convert_optab_handler)
22830         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
22831         CODE_FOR_nothing".
22832         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
22833         (init_insn_codes): Zero both the above arrays.
22834         (init_optabs): Never call init_insn_codes first time around.
22835
22836 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
22837
22838         * optabs.h (optab_handler, convert_optab_handler): Turn into
22839         inline functions that return an insn code.
22840         (set_optab_handler, set_convert_optab_handler): New functions.
22841         * builtins.c: Replace optab_handler(X)->insn_code with
22842         optab_handler or set_optab_handler thoughout.  Likewise
22843         convert_optab_handler(X)->insn_code with convert_optab_handler
22844         and set_convert_optab_handler.
22845         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
22846         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
22847         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
22848         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
22849         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
22850         config/spu/spu.c: Likewise.
22851
22852 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
22853
22854         PR target/44531
22855         * config.gcc (sh*-*-*): Use regular expressions instead of
22856         the 'i' modifier for sed substitutions.
22857
22858 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
22859
22860         * gimple.c (gimple_body): Comments added.
22861
22862 2010-07-04  Richard Guenther  <rguenther@suse.de>
22863
22864         PR middle-end/44809
22865         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
22866         of an INDIRECT_REF.
22867
22868 2010-07-04  Richard Guenther  <rguenther@suse.de>
22869
22870         PR tree-optimization/44479
22871         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
22872         extra SSA name copy statements which preserves points-to
22873         information.
22874         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
22875         Copy points-to information for all pointers.  Properly handle
22876         MEM_REFs.
22877         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
22878         copy statements.
22879         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
22880         dependency.
22881
22882 2010-07-04  Richard Guenther  <rguenther@suse.de>
22883
22884         PR middle-end/44785
22885         * tree-inline.c (initialize_inlined_parameters): Do not
22886         re-use pointer-map slot over remap_type call.
22887
22888 2010-07-04  Richard Guenther  <rguenther@suse.de>
22889
22890         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
22891
22892 2010-07-04  Richard Guenther  <rguenther@suse.de>
22893
22894         PR tree-optimization/44656
22895         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
22896         again after value-replacing in the defintions lhs.
22897
22898 2010-07-04  Ira Rosen  <irar@il.ibm.com>
22899             Revital Eres  <eres@il.ibm.com>
22900
22901         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
22902         Document new arguments.
22903         * doc/tm.texi: Regenerate.
22904         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
22905         Handle unaligned store.
22906         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
22907         * target.def (builtin_vectorization_cost): Add new arguments.
22908         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
22909         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
22910         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
22911         (vect_vfa_segment_size): Fix indentation.
22912         * tree-vectorizer.h (struct _vect_peel_info): New.
22913         (struct _vect_peel_extended_info): New.
22914         (struct _loop_vec_info): Add new field for peeling hash table and a
22915         macro for its access.
22916         (VECT_MAX_COST): Define.
22917         (vect_get_load_cost): Declare.
22918         (vect_get_store_cost, vect_get_known_peeling_cost,
22919         vect_get_single_scalar_iteraion_cost): Likewise.
22920         (vect_supportable_dr_alignment): Add new argument.
22921         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
22922         field.
22923         (destroy_loop_vec_info): Free peeling hash table.
22924         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
22925         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
22926         vect_analyze_slp. Fix indentation.
22927         (vect_get_single_scalar_iteraion_cost): New function.
22928         (vect_get_known_peeling_cost): Likewise.
22929         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
22930         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
22931         statement. Move outside cost calculation inside unknown peeling case.
22932         Call vect_get_known_peeling_cost for known amount of peeling.
22933         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
22934         reference to the print message of forced alignment.
22935         (vect_verify_datarefs_alignment): Update call to
22936         vect_supportable_dr_alignment.
22937         (vect_get_data_access_cost): New function.
22938         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
22939         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
22940         vect_peeling_hash_choose_best_peeling): Likewise.
22941         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
22942         to store all the accesses in the loop and find best possible access to
22943         align using peeling for known alignment case. For unknown alignment
22944         check if stores are preferred or if peeling is worthy.
22945         (vect_find_same_alignment_drs): Analyze pairs of loads too.
22946         (vect_supportable_dr_alignment): Add new argument and check aligned
22947         accesses according to it.
22948         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
22949         (cost_for_stmt): Call vect_get_stmt_cost.
22950         (vect_model_simple_cost): Likewise.
22951         (vect_model_store_cost): Call vect_get_stmt_cost. Call
22952         vect_get_store_cost to calculate the cost of the statement.
22953         (vect_get_store_cost): New function.
22954         (vect_model_load_cost): Call vect_get_stmt_cost. Call
22955         vect_get_load_cost to calculate the cost of the statement.
22956         (vect_get_load_cost): New function.
22957         (vectorizable_store): Update call to vect_supportable_dr_alignment.
22958         (vectorizable_load): Likewise.
22959         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
22960         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
22961         arguments. Handle unaligned store.
22962         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
22963         (rs6000_builtin_support_vector_misalignment): Return true for word and
22964         double word alignments for VSX.
22965         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
22966         vect_supportable_dr_alignment and builtin_vectorization_cost.
22967
22968 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22969
22970         PR target/44597
22971         * config/pa/predicates.md (prefetch_cc_operand): Remove.
22972         (prefetch_nocc_operand): Likewise.
22973         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
22974         (prefetch_20): New insn.
22975         (prefetch_cc): Remove.
22976         (prefetch_nocc): Likewise.
22977
22978 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22979
22980         * expr.c (vector_mode_valid_p): Move to c-common.c.
22981         * expr.h (vector_mode_valid_p): Do not declare here.
22982         * system.h: Poison GCC_EXPR_H in front-ends.
22983         * Makefile.in: Update dependencies.
22984
22985 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22986
22987         PR target/44705
22988         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
22989
22990 2010-07-03  Jan Hubicka  <jh@suse.cz>
22991
22992         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
22993         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
22994         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
22995         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
22996         Likewise.
22997
22998         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
22999         Update timevars.V
23000         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
23001         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
23002         TV_IPA_LTO_DECL_OUT): New.
23003         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
23004
23005 2010-07-03  Jan Hubicka  <jh@suse.cz>
23006
23007         * ipa-inline.c (update_edge_key): Break out from ...
23008         update_callers_keys): ... here;
23009         (update_callee_keys): Update only the edges from caller to callee.
23010         (update_all_calle_keys): Do what update_calle_keys did.
23011         (decide_inlining_of_small_functions): Avoid recomputing of all
23012         callees when badness increase.
23013
23014 2010-07-03  Jie Zhang  <jie@codesourcery.com>
23015
23016         * config/arm/arm.c (arm_attr_length_move_neon): New.
23017         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
23018         * config/arm/neon.md (define_mode_attr V_slen): Remove.
23019         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
23020         to compute length attribute.
23021
23022 2010-07-03  Jie Zhang  <jie@codesourcery.com>
23023
23024         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
23025         as predicate for operand 1 and remove its constraint.
23026         * config/arm/predicates.md (vfp_register_operand): New.
23027         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
23028         (*push_fp_multi): Likewise.
23029
23030 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
23031
23032         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
23033
23034 2010-07-03  Jan Hubicka  <jh@suse.cz>
23035
23036         * config/i386/i386.c (override_options): Revert accidental commit.
23037
23038 2010-07-02  Le-Chun Wu  <lcwu@google.com>
23039
23040         PR c++/44128
23041         * doc/invoke.texi: Update documentation of -Wshadow.
23042
23043 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
23044             Julian Brown  <julian@codesourcery.com>
23045             Sandra Loosemore  <sandra@codesourcery.com>
23046
23047         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
23048         comparisons.  Adjust to take both operands.
23049         (arm_select_cc_mode): Handle DImode comparisons.
23050         (arm_gen_compare_reg): Generate a scratch register for DImode
23051         comparisons which require one.  Use xor for Thumb equality checks.
23052         (arm_const_double_by_immediates): New.
23053         (arm_print_operand): Allow 'Q' and 'R' for constants.
23054         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
23055         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
23056         arm_canonicalize_comparison.
23057         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
23058         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
23059         prototype.
23060         (arm_const_double_by_immediates): Declare.
23061         * config/arm/constraints.md (Di): New constraint.
23062         * config/arm/predicates.md (arm_immediate_di_operand)
23063         (arm_di_operand, cmpdi_operand): New.
23064         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
23065         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
23066         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
23067         (cstoredi4): Handle non-Cirrus also.
23068
23069 2010-07-02  Julian Brown  <julian@codesourcery.com>
23070             Sandra Loosemore  <sandra@codesourcery.com>
23071
23072         PR target/43703
23073         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
23074         (smax<mode>3): Disable for NEON float modes when
23075         flag_unsafe_math_optimizations is false.
23076         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
23077         (*mul<mode>3_neon)
23078         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
23079         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
23080         for NEON float modes when flag_unsafe_math_optimizations is false.
23081         (quad_halves_<code>v4sf): Only enable if
23082         flag_unsafe_math_optimizations is true.
23083         * doc/invoke.texi (ARM Options): Add note about floating point
23084         vectorization requiring -funsafe-math-optimizations.
23085
23086 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
23087             Julian Brown  <julian@codesourcery.com>
23088
23089         * config/arm/neon.md (UNSPEC_VABA): Delete.
23090         (UNSPEC_VABAL): Delete.
23091         (UNSPEC_VABS): Delete.
23092         (UNSPEC_VMUL_N): Delete.
23093         (adddi3_neon): New.
23094         (subdi3_neon): New.
23095         (mul<mode>3add<mode>_neon): Make the pattern named.
23096         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
23097         (neon_vadd<mode>): Replace with define_expand, and move the remaining
23098         unspec parts...
23099         (neon_vadd<mode>_unspec): ...to this.
23100         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
23101         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
23102         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
23103         (neon_vaba<mode>): Rewrite in terms of vabd.
23104         (neon_vabal<mode>): Rewrite in terms of vabdl.
23105         (neon_vabs<mode>): Rewrite without unspec.
23106         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
23107         (*arm_subdi3): Likewise.
23108         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
23109         No_op attribute to disable assembly output checks.
23110         * config/arm/arm_neon.h: Regenerated.
23111         * doc/arm-neon-intrinsics.texi: Regenerated.
23112
23113 2010-07-02  Jan Hubicka  <jh@suse.cz>
23114
23115         * ipa-split.c (split_function): For aggregate values, set the return
23116         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
23117         *<retval> = fncall.part ().
23118         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
23119
23120 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
23121
23122         * config/arm/neon.md (UNSPEC_VAND): Delete.
23123         (UNSPEC_VBIC): Delete.
23124         (UNSPEC_VCLZ): Delete.
23125         (UNSPEC_VCNT): Delete.
23126         (UNSPEC_VEOR): Delete.
23127         (UNSPEC_VORN): Delete.
23128         (UNSPEC_VORR): Delete.
23129         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
23130         core registers too.
23131         (anddi3_neon): Likewise.
23132         (orndi3_neon): Likewise.
23133         (bicdi3_neon): Likewise.
23134         (xordi3_neon): Likewise.
23135         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
23136         rid of unspec and handle unused operand.
23137         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
23138         * config/arm/predicates.md (imm_for_neon_logic_operand):
23139         Require TARGET_NEON.
23140         (imm_for_neon_inv_logic_operand): Likewise.
23141         * config/arm/arm.md (define_split for logical_binary_operator):
23142         Disable for NEON registers.
23143         (anddi3): Add new define_expand, and rename the insn.  Disable
23144         this insn for NEON, where anddi3_neon now applies.
23145         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
23146         (iordi3): As for anddi3.
23147         (xordi3): Likewise.
23148         * config/arm/neon.ml (Vand): Split DImode variants and mark them
23149         as No_op to disable testing for exact instruction match.
23150         (Vorr): Likewise.
23151         (Veor): Likewise.
23152         (Vbic): Likewise.
23153         (Vorn): Likewise.
23154         * config/arm/arm_neon.h: Regenerated.
23155         * doc/arm-neon-intrinsics.texi: Regenerated.
23156
23157 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
23158
23159         * expr.h (emit_stack_probe): Declare.
23160         * explow.c (emit_stack_probe): Make global.
23161         (anti_adjust_stack_and_probe): Fix comments.
23162         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
23163         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
23164         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
23165         * config/sparc/sparc.c: Include except.h.
23166         (sparc_emit_probe_stack_range): New function.
23167         (output_probe_stack_range): Likewise.
23168         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
23169         built-in stack checking is enabled.
23170         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
23171         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
23172         (probe_stack_range): New insn.
23173
23174 2010-07-02  Richard Guenther  <rguenther@suse.de>
23175
23176         PR target/43958
23177         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
23178         for argument alignment.
23179
23180 2010-07-02  Jan Hubicka  <jh@suse.cz>
23181
23182         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
23183         walk backwards from entry_bb to check only those basic block of header
23184         that might lead to execution of split part.
23185         (consider_split) ... here.
23186         (find_return_bb): Allow assignment in return BB.
23187         (find_retval): New.
23188         (split_function): Fix name of cloned function; take care of updating
23189         return value in return_bb containing move.
23190
23191 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
23192
23193         PR target/44771
23194         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
23195         used variable insn.
23196
23197 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
23198
23199         * implicit-zee.c (combine_reaching_defs): Fix long lines.
23200         (is_set_with_extension_DI): Delete.
23201         (struct zero_extend_info): New structure.
23202         (add_removable_zero_extend): New function.
23203         (find_removable_zero_extends): Use note_stores to find SETs.
23204         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
23205
23206 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
23207
23208         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
23209         is_miss_rate_acceptable. Pull total_positions computation
23210         out of the loops.  Early return if miss_positions exceeds
23211         the acceptable threshold.
23212         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
23213         is_miss_rate_acceptable after renaming of compute_miss_rate.
23214
23215 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
23216
23217         PR middle-end/44576
23218         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
23219         of 1000) for miss rate if the address diference is greater than or
23220         equal to the cache line size (the two reference will never hit the
23221         same cache line).
23222
23223 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
23224
23225         PR target/42835
23226         * config/arm/arm-modes.def (CC_NOTB): New mode.
23227         * config/arm/arm.c (get_arm_condition_code): Handle it.
23228         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
23229         * config/arm/arm.md (subsi3_compare0_c): New pattern.
23230         (compare_scc): Now a define_and_split.  Add a number of extra
23231         splitters before it.
23232
23233         PR target/42172
23234         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
23235         and ZERO_EXTEND.
23236         (arm_rtx_costs_1): Likewise.
23237         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
23238         * config/arm/arm.md (is_arch6): New attribute.
23239         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
23240         extendqisi2): Tighten the code somewhat, avoiding invalid
23241         RTL to occur in the expander patterns.
23242         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
23243         (thumb1_zero_extendhisi2_v6): Delete.
23244         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
23245         (thumb1_extendhisi2_v6): Delete.
23246         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
23247         (thumb1_extendqisi2_v6): Delete.
23248         (zero_extendhisi2 for register input splitter): New.
23249         (zero_extendqisi2 for register input splitter): New.
23250         (thumb1_extendhisi2 for register input splitter): New.
23251         (extendhisi2 for register input splitter): New.
23252         (extendqisi2 for register input splitter): New.
23253         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
23254         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
23255         and add support for a register alternative requiring a split.
23256         (thumb1_zero_extendqisi2): Likewise.
23257         (arm_zero_extendqisi2): Likewise.
23258         (arm_extendhisi2): Likewise.
23259         (arm_extendqisi2): Likewise.
23260
23261 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
23262
23263         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
23264         instead of an unspec.
23265         (neon_expand_vector_init): Likewise.
23266         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
23267         (UNSPEC_VDUP_LANE): Delete.
23268         (UNSPEC VDUP_N): Delete.
23269         (UNSPEC_VGET_HIGH): Delete.
23270         (UNSPEC_VGET_LANE): Delete.
23271         (UNSPEC_VGET_LOW): Delete.
23272         (UNSPEC_VMVN): Delete.
23273         (UNSPEC_VSET_LANE): Delete.
23274         (V_double_vector_mode): New.
23275         (vec_set<mode>_internal): Make code emitted match that for the
23276         corresponding intrinsics.
23277         (vec_setv2di_internal): Likewise.
23278         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
23279         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
23280         (neon_vset_lane<mode>): Combine double and quad patterns and
23281         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
23282         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
23283         (neon_vdup_n<mode>): Rewrite RTL without unspec.
23284         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
23285         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
23286         with neon_vdup_lanev2di, adjusting the pattern from the latter
23287         to be predicable for consistency.
23288         (neon_vdup_lane<mode>_internal): New.
23289         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
23290         to avoid using an unspec.
23291         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
23292         (neon_vdup_lanev2di): Turn into a define_expand.
23293         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
23294         (neon_vget_high<mode>): Replace with....
23295         (neon_vget_highv16qi): New pattern using canonical RTL.
23296         (neon_vget_highv8hi): Likewise.
23297         (neon_vget_highv4si): Likewise.
23298         (neon_vget_highv4sf): Likewise.
23299         (neon_vget_highv2di): Likewise.
23300         (neon_vget_low<mode>): Replace with....
23301         (neon_vget_lowv16qi): New pattern using canonical RTL.
23302         (neon_vget_lowv8hi): Likewise.
23303         (neon_vget_lowv4si): Likewise.
23304         (neon_vget_lowv4sf): Likewise.
23305         (neon_vget_lowv2di): Likewise.
23306
23307         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
23308         test for this emitting vmov.
23309         (Vset_lane): Likewise.
23310         (Vdup_n): Likewise.
23311         (Vmov_n): Likewise.
23312
23313         * doc/arm-neon-intrinsics.texi: Regenerated.
23314
23315 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
23316
23317         * config/arm/neon.md (vec_extractv2di): Correct error in register
23318         numbering to reconcile with neon_vget_lanev2di.
23319
23320 2010-07-02  Richard Guenther  <rguenther@suse.de>
23321
23322         * tree-ssa-structalias.c (pt_solution_set_var): New function.
23323         * tree-ssa-alias.h (pt_solution_set_var): Declare.
23324         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
23325         points-to information.
23326
23327 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
23328
23329         * config/s390/s390.c (override_options): Adopt prefetching
23330         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
23331
23332 2010-07-02  Jan Hubicka  <jh@suse.cz>
23333
23334         * df-problems.c (df_kill_notes): Do not collect dead  notes.
23335         (df_set_note): Just call add_reg_note.
23336         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
23337         df_create_unused_note): Do not deal with lists of old notes.
23338         (df_note_bb_compute): Likewise.
23339
23340 2010-07-02  Richard Guenther  <rguenther@suse.de>
23341
23342         * tree-ssa-structalias.c (find_func_aliases): Handle
23343         pointer alignment via BIT_AND_EXPR.
23344         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
23345
23346 2010-07-02  Richard Guenther  <rguenther@suse.de>
23347
23348         * tree-data-ref.c (initialize_data_dependence_relation): Handle
23349         mismatching number of dimensions properly.
23350
23351 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23352
23353         PR target/44707
23354         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
23355         (lo_sum (high ...) ...) patterns generated by earlier passes.
23356
23357 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23358
23359         * doc/install.texi (Prerequisites): Document Perl requirement on
23360         Solaris 2.
23361         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
23362
23363 2010-07-02  Richard Guenther  <rguenther@suse.de>
23364
23365         PR middle-end/44777
23366         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
23367
23368 2010-07-02  Jan Hubicka  <jh@suse.cz>
23369
23370         PR middle-end/44706
23371         * predict.c (predict_paths_for_bb): Handle case when control dependence
23372         BB has only abnormal edges.
23373
23374 2010-07-02  Richard Guenther  <rguenther@suse.de>
23375
23376         PR tree-optimization/44748
23377         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
23378         the embedded conversion in MEM_REFs.
23379
23380 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
23381
23382         * reload.c: Include toplev.h.
23383         * recog.c:  Likewise.
23384         * Makefile.in: Adjust dependencies.
23385
23386 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
23387
23388         PR debug/44694
23389         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
23390         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
23391
23392 2010-07-01  Richard Guenther  <rguenther@suse.de>
23393
23394         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
23395         types for offsets.
23396
23397 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
23398
23399         PR target/44732
23400         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
23401         Fix argument types.
23402
23403 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
23404
23405         PR target/44727
23406         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
23407         Make sure operand 0 dies.
23408
23409 2010-07-01  Richard Guenther  <rguenther@suse.de>
23410
23411         PR middle-end/42834
23412         PR middle-end/44468
23413         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
23414         * doc/generic.texi (References to storage): Document MEM_REF.
23415         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
23416         (print_call_name): Likewise.
23417         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
23418         (build_simple_mem_ref_loc): New function.
23419         (mem_ref_offset): Likewise.
23420         * tree.h (build_simple_mem_ref_loc): Declare.
23421         (build_simple_mem_ref): Define.
23422         (mem_ref_offset): Declare.
23423         * fold-const.c: Include tree-flow.h.
23424         (operand_equal_p): Handle MEM_REF.
23425         (build_fold_addr_expr_with_type_loc): Likewise.
23426         (fold_comparison): Likewise.
23427         (fold_unary_loc): Fold
23428         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
23429         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
23430         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
23431         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
23432         (ptr_deref_may_alias_ref_p_1): Likewise.
23433         (ao_ref_base_alias_set): Properly differentiate base object for
23434         offset and TBAA.
23435         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
23436         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
23437         (indirect_refs_may_alias_p): Likewise.
23438         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
23439         chasing code.
23440         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
23441         (call_may_clobber_ref_p_1): Likewise.
23442         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
23443         * expr.c (expand_assignment): Handle MEM_REF.
23444         (store_expr): Handle MEM_REFs from STRING_CSTs.
23445         (store_field): If expanding a MEM_REF of a non-addressable
23446         decl use bitfield operations.
23447         (get_inner_reference): Handle MEM_REF.
23448         (expand_expr_addr_expr_1): Likewise.
23449         (expand_expr_real_1): Likewise.
23450         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
23451         * alias.c (ao_ref_from_mem): Handle MEM_REF.
23452         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
23453         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
23454         (dr_analyze_indices): Likewise.
23455         (dr_analyze_alias): Likewise.
23456         (object_address_invariant_in_loop_p): Likewise.
23457         * gimplify.c (mark_addressable): Handle MEM_REF.
23458         (gimplify_cond_expr): Build MEM_REFs.
23459         (gimplify_modify_expr_to_memcpy): Likewise.
23460         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
23461         (gimple_fold_indirect_ref): Adjust.
23462         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
23463         * tree.def (MEM_REF): New tree code.
23464         * tree-dfa.c: Include toplev.h.
23465         (get_ref_base_and_extent): Handle MEM_REF.
23466         (get_addr_base_and_unit_offset): New function.
23467         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
23468         * gimple-fold.c (may_propagate_address_into_dereference): Handle
23469         MEM_REF.
23470         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
23471         accesses if the array has just one dimension.  Remove always true
23472         parameter.  Do not require type compatibility here.
23473         (maybe_fold_offset_to_component_ref): Remove.
23474         (maybe_fold_stmt_indirect): Remove.
23475         (maybe_fold_reference): Remove INDIRECT_REF handling.
23476         Fold back to non-MEM_REF.
23477         (maybe_fold_offset_to_address): Simplify.  Deal with type
23478         mismatches here.
23479         (maybe_fold_reference): Likewise.
23480         (maybe_fold_stmt_addition): Likewise.  Also handle
23481         &ARRAY + I in addition to &ARRAY[0] + I.
23482         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
23483         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
23484         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
23485         * tree-ssa.c (useless_type_conversion_p): Make most pointer
23486         conversions useless.
23487         (warn_uninitialized_var): Handle MEM_REF.
23488         (maybe_rewrite_mem_ref_base): New function.
23489         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
23490         to SSA form.
23491         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
23492         INDIRECT_REF handling.
23493         (copy_tree_body_r): Handle MEM_REF.
23494         * gimple.c (is_gimple_addressable): Adjust.
23495         (is_gimple_address): Likewise.
23496         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
23497         invariant base are invariant.
23498         (is_gimple_min_lval): Adjust.
23499         (is_gimple_mem_ref_addr): New function.
23500         (get_base_address): Handle MEM_REF.
23501         (count_ptr_derefs): Likewise.
23502         (get_base_loadstore): Likewise.
23503         * gimple.h (is_gimple_mem_ref_addr): Declare.
23504         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
23505         * tree-cfg.c (verify_address): New function, split out from ...
23506         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
23507         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
23508         INDIRECT_REFs.
23509         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
23510         INDIRECT_REF.  Allow conversions.
23511         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
23512         a register does not change its size.
23513         (verify_types_in_gimple_reference): Verify MEM_REF.
23514         (verify_gimple_assign_single): Disallow INDIRECT_REF.
23515         Handle MEM_REF.
23516         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
23517         New.
23518         (mark_address_taken): Handle MEM_REF.
23519         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
23520         (get_asm_expr_operands): Pass opf_not_non_addressable.
23521         (get_expr_operands): Handle opf_[not_]non_addressable.
23522         Handle MEM_REF.  Remove INDIRECT_REF handling.
23523         * tree-vrp.c (check_array_ref): Handle MEM_REF.
23524         (search_for_addr_array): Likewise.
23525         (check_array_bounds): Likewise.
23526         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
23527         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
23528         (ref_always_accessed_p): Likewise.
23529         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
23530         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
23531         Handle MEM_REF.
23532         * cgraphbuild.c (mark_load): Properly check for NULL result
23533         from get_base_address.
23534         (mark_store): Likewise.
23535         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
23536         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
23537         handling for MEM_REF.
23538         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
23539         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
23540         * builtins.c (stabilize_va_list_loc): Use the function ABI
23541         valist type if we couldn't canonicalize the argument type.
23542         Always dereference with the canonical va-list type.
23543         (maybe_emit_free_warning): Handle MEM_REF.
23544         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
23545         memmove to memcpy.
23546         * builtins.c (fold_builtin_memory_op): Use ref-all types
23547         for all memcpy foldings.
23548         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
23549         (build_outer_var_ref): Likewise.
23550         (scan_omp_1_op): Likewise.
23551         (lower_rec_input_clauses): Likewise.
23552         (lower_lastprivate_clauses): Likewise.
23553         (lower_reduction_clauses): Likewise.
23554         (lower_copyprivate_clauses): Likewise.
23555         (expand_omp_atomic_pipeline): Likewise.
23556         (expand_omp_atomic_mutex): Likewise.
23557         (create_task_copyfn): Likewise.
23558         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
23559         Remove old union trick.  Initialize constant offsets.
23560         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
23561         INDIRECT_REF.  Init base_alias_set properly.
23562         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
23563         (vn_reference_fold_indirect): Adjust for MEM_REFs.
23564         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
23565         for ARRAY_REFs.
23566         (may_insert): Remove.
23567         (visit_reference_op_load): Do not test may_insert.
23568         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
23569         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
23570         a field to store the constant offset this op applies.
23571         (run_scc_vn): Adjust prototype.
23572         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
23573         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
23574         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
23575         bother about volatile qualifiers on pointers.
23576         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
23577         * tree-ssa-loop-ivopts.c
23578         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
23579         (strip_offset_1): Likewise.
23580         (find_interesting_uses_address): Replace INDIRECT_REF handling with
23581         MEM_REF handling.
23582         (get_computation_cost_at): Likewise.
23583         * ipa-pure-const.c (check_op): Handle MEM_REF.
23584         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
23585         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
23586         and constants.
23587         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
23588         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
23589         (eliminate_local_variables_1): Likewise.
23590         (create_call_for_reduction_1): Likewise.
23591         (create_loads_for_reductions): Likewise.
23592         (create_loads_and_stores_for_name): Likewise.
23593         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
23594         (ssa_accessed_in_tree): Handle MEM_REF.
23595         (ssa_accessed_in_assign_rhs): Likewise.
23596         (update_type_size): Likewise.
23597         (analyze_accesses_for_call_stmt): Likewise.
23598         (analyze_accesses_for_assign_stmt): Likewise.
23599         (transform_access_sites): Likewise.
23600         (transform_allocation_sites): Likewise.
23601         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
23602         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
23603         not handle INDIRECT_REF.
23604         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
23605         (cond_store_replacement): Likewise.
23606         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
23607         MEM_REF, no not handle INDIRECT_REFs.
23608         (insert_into_preds_of_block): Properly initialize avail.
23609         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
23610         for ARRAY_REFs.  Properly handle reference lookups that
23611         require a bit re-interpretation.
23612         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
23613         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
23614         (build_ref_for_offset_1): Remove.
23615         (build_ref_for_offset): Build MEM_REFs.
23616         (gate_intra_sra): Disable for now.
23617         (sra_ipa_modify_expr): Handle MEM_REF.
23618         (ipa_early_sra_gate): Disable for now.
23619         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
23620         MEM_REF handling.
23621         (disqualify_base_of_expr): Likewise.
23622         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
23623         MEM_REF handling.
23624         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
23625         Use mem_ref_offset.  Remove bogus folding.
23626         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
23627         (make_fancy_name_1): Add support for MEM_REF.
23628         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
23629         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
23630         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
23631         (compute_complex_ancestor_jump_func): Likewise.
23632         (ipa_analyze_virtual_call_uses): Likewise.
23633         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
23634         INDIRECT_REF folding with more generalized MEM_REF folding.
23635         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
23636         (forward_propagate_addr_into_variable_array_index): Also handle
23637         &ARRAY + I in addition to &ARRAY[0] + I.
23638         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
23639         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
23640         creates assignments with overlap.
23641         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
23642         (get_frame_field): Likewise.
23643         (get_nonlocal_debug_decl): Likewise.
23644         (convert_nonlocal_reference_op): Likewise.
23645         (struct nesting_info): Add mem_refs pointer-set.
23646         (create_nesting_tree): Allocate it.
23647         (convert_local_reference_op): Insert to be folded mem-refs.
23648         (fold_mem_refs): New function.
23649         (finalize_nesting_tree_1): Perform defered folding of mem-refs
23650         (free_nesting_tree): Free the pointer-set.
23651         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
23652         (vectorizable_load): Likewise.
23653         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
23654         (propagate_with_phi): Likewise.
23655         * tree-object-size.c (addr_object_size): Handle MEM_REFs
23656         instead of INDIRECT_REFs.
23657         (compute_object_offset): Handle MEM_REF.
23658         (plus_stmt_object_size): Handle MEM_REF.
23659         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
23660         for &MEM_REF.
23661         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
23662         (symbol_marked_for_renaming): Likewise.
23663         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
23664         (fold-const.o): Add $(TREE_FLOW_H).
23665         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
23666         (find_func_clobbers): Likewise.
23667         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
23668         (decompose_access): Likewise.
23669         (replace_field_acc): Likewise.
23670         (replace_field_access_stmt): Likewise.
23671         (insert_new_var_in_stmt): Likewise.
23672         (get_stmt_accesses): Likewise.
23673         (reorg_structs_drive): Disable.
23674         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
23675         (ix86_canonical_va_list_type): Likewise.
23676
23677 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
23678
23679         PR other/44566
23680         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
23681         * target.def (struct gcc_target): Replace enum reg_class with
23682         reg_class_t in hook argument / return types.
23683         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
23684         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
23685         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
23686         * targhooks.h (default_branch_target_register_class): Likewise.
23687         (default_ira_cover_classes, default_secondary_reload): Likewise.
23688         (default_memory_move_cost, default_register_move_cost): Likewise.
23689         * targhooks.c (default_branch_target_register_class): Likewise.
23690         (default_ira_cover_classes, default_secondary_reload): Likewise.
23691         (default_memory_move_cost, default_register_move_cost): Likewise.
23692         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
23693         * bt-load.c (branch_target_load_optimize): Likewise.
23694         * ira.c (setup_cover_and_important_classes): Likewise.
23695         * ira-costs.c (copy_cost): Likewise.
23696         * reload1.c (emit_input_reload_insns): Likewise.
23697         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
23698         * config/frv/frv.c (frv_secondary_reload): Likewise.
23699         * config/s390/s390.c (s390_secondary_reload): Likewise.
23700         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
23701         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
23702         (ix86_register_move_cost): Likewise.
23703         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
23704         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
23705         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
23706         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
23707         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
23708         (rs6000_ira_cover_classes): Likewise.
23709         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
23710         * config/picochip/picochip-protos.h (picochip_secondary_reload):
23711         Likewise.
23712         * config/pa/pa.c (pa_secondary_reload): Likewise.
23713         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
23714         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
23715         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
23716         * doc/tm.texi: Regenerate.
23717
23718 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
23719
23720         PR bootstrrap/44726
23721         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
23722         use.
23723         (build_alias_set_optimal_p): Likewise.
23724         (build_base_obj_set_for_drs): Likewise.
23725
23726 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
23727
23728         * target.def: Remove comment about licensing problems of function
23729         declarations.
23730
23731         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
23732         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
23733         * doc/tm.texi: Regenerate.
23734
23735         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
23736         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
23737
23738         * target.def (enum_va_list_p): Use DEFHOOK.
23739         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
23740         Rename ptype to ptree.
23741         * doc/tm.texi: Regenerate.
23742
23743         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
23744         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
23745         * doc/tm.texi: Regenerate.
23746
23747         * target.def (memory_move_cost): Use DEFHOOK.
23748         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
23749         Rename regclass AKA class to rclass.
23750         * doc/tm.texi: Regenerate.
23751
23752         * target.def (pragma_parse): Use DEFHOOK.
23753         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
23754         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
23755         * doc/tm.texi: Regenerate.
23756
23757         * target.def (pass_by_reference): Use DEFHOOK.
23758         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
23759         * doc/tm.texi: Regenerate.
23760
23761         * target.def (resolve_overloaded_builtin): Rename params to arglist.
23762         Use DEFHOOK.
23763         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
23764         * doc/tm.texi: Regenerate.
23765
23766         * target.def (return_pops_args): Use DEFHOOK.
23767         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
23768         Rename stack-size to size.
23769         * doc/tm.texi: Regenerate.
23770
23771         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
23772         last-sched_cycle to last_clock, cur_cycle to clock.
23773         * doc/tm.texi.in: Use @hook.
23774         * doc/tm.texi: Regenerate.
23775
23776         * target.def (print_operand, print_operand_address): Update comment.
23777         (print_operand_punct_valid_p): Likewise.
23778
23779 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23780
23781         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
23782         to rtl.h.
23783         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
23784         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
23785         * rtl-error.h: New.
23786         * regrename.c: Do not include toplev.h. Include rtl-error.h.
23787         * rtl-error.c: Likewise.
23788         * reload.c: Likewise.
23789         * recog.c:  Likewise.
23790         * sel-sched.c: Likewise.
23791         * function.c: Likewise.
23792         * reg-stack.c: Likewise.
23793         * cfgrtl.c: Likewise.
23794         * reload1.c: Likewise.
23795         * final.c: Include rtl-error.
23796         * Makefile.in: Adjust dependencies.
23797
23798 2010-06-30  Jan Hubicka  <jh@suse.cz>
23799
23800         PR middle-end/PR44706
23801         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
23802         to return the value.
23803
23804 2010-06-30  Michael Matz  <matz@suse.de>
23805
23806         PR bootstrap/44699
23807         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
23808         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
23809         a gimple reg, attach the original VDEF to the last store in the
23810         sequence.
23811
23812 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
23813
23814         PR other/44034
23815         * config/darwin.c (darwin_override_options): Use renamed
23816         targetm.asm_out.emit_unwind_label.
23817
23818 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
23819
23820         PR tree-optimization/39799
23821         * tree-inline.c (remap_ssa_name): Initialize variable only if
23822         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
23823
23824 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
23825
23826         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
23827
23828 2010-06-30  Richard Guenther  <rguenther@suse.de>
23829
23830         PR target/44722
23831         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
23832         against oscillation with reverse peephole2.
23833
23834 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
23835
23836         PR target/44721
23837         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
23838         Fix last commit.
23839
23840 2010-06-30  Nick Clifton  <nickc@redhat.com>
23841
23842         * config/rx/rx-modes.def: New file.
23843         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
23844         (CC_REGNUM): Define.
23845         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
23846         register.
23847         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
23848         (SELECT_CC_MODE): Define.
23849         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
23850         (reg:CC CC_REG) instead of (cc0).
23851         (attr "cc"): Delete.
23852         (cbranchsi4): Do not split compare and branch here. Instead move
23853         it to...
23854         (cbranchsi4_<code>): ... here.  New patterns.
23855         (cmpsi): Call rx-compare_redundant to find out if it is necessary
23856         to emit the compare instruction.
23857         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
23858         cc_status flags.
23859         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
23860         FIRST_PSEUDO_REGNUM.
23861         (rx_expand_prologue, rx_expand_epilogue): Likewise.
23862         (rx_notice_update_cc): Delete.
23863         (rx_cc_modes_compatible): New function.
23864         (flags_needed_for_conditional): New function.
23865         (flags_from_mode): New function.
23866         (rx_compare_redundant): New function - scans backwards through
23867         insn list to find out if condition flags are already set correctly.
23868         (TARGET_CC_MODES_COMPATIBLE): Define.
23869         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
23870
23871         * config/rx/rx.h (BRANCH_COST): Define.
23872         (REGISTER_MOVE_COST): Define.
23873         * config/rx/predicates (rx_source_operand): Allow all constant types.
23874         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
23875         (tstsi4): New pattern.
23876         * config/rx/rx.c (rx_memory_move_cost): Define.
23877         (TARGET_MEMORY_MOVE_COST): Define.
23878
23879 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23880
23881         * tree.h (block_may_fallthru): Declare here.
23882         * tree-flow.h (block_may_fallthru): Do not declare here.
23883         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
23884         bitmap.h
23885         * Makefile.in (c-typeck.o): Update dependencies.
23886
23887 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
23888
23889         PR debug/44694
23890         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
23891         * cselib.c (cfa_base_preserved_regno): New static variable.
23892         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
23893         of REGNO (cfa_base_preserved_val->locs->loc).
23894         (cselib_preserve_cfa_base_value): Add regno argument, set
23895         cfa_base_preserved_regno to it.
23896         (cselib_invalidate_regno): Allow removal of registers other than
23897         cfa_base_preserved_regno from cfa_base_preserved_val.
23898         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
23899         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
23900         of MEM addresses, if not on LHS.
23901         (reverse_op): Don't add reverse ops for cfa_base_rtx.
23902         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
23903
23904 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
23905
23906         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
23907         static variables.
23908         (peep2_buf_position): New static function.
23909         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
23910         peephole2_optimize): Use it.
23911         (peep2_attempt, peep2_update_life): New static functions, broken out
23912         of peephole2_optimize.
23913         (peep2_fill_buffer): New static function.
23914         (peephole2_optimize): Change the main loop to try to fill the buffer
23915         with the maximum number of insns before matching them against
23916         peepholes.  Use a forward scan.  Remove special case for targets with
23917         conditional execution.
23918         * genrecog.c (change_state): Delete dead code.
23919         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
23920         Rewrite so as not to expect the second insn to have had a peephole
23921         applied yet.
23922
23923 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
23924
23925         * genhooks.c (emit_findices): Cast field precision to int.
23926         (emit_documentation): Likewise.
23927
23928 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
23929
23930         PR tree-optimization/43801
23931         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
23932         if old_decl was DECL_ONE_ONLY.
23933
23934         PR debug/44668
23935         * dwarf2out.c (add_accessibility_attribute): New function.
23936         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
23937         instead of adding DW_AT_accessibility manually.
23938         (gen_enumeration_type_die, gen_struct_or_union_type_die,
23939         gen_typedef_die): Use it.
23940
23941 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
23942
23943         * vmsdbgout.c (full_name): Just output the file name if not native.
23944
23945 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
23946
23947         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
23948         (funcnam_table): New static table.
23949         (funcnum_table): New static table.
23950         (write_rtnbeg): Write value saved in funcnum_table.
23951         (write_rtnend): Write value saved in funcnum_table.
23952         (vmsdbgout_begin_function): Save current function info in
23953         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
23954         (vmsdbgout_finish): Iterate over funcnum_table.
23955
23956 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
23957
23958         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
23959         (vmsdbgout_type_decl): Declare
23960         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
23961         (FUNC_EPILOGUE_LABEL): New macro
23962         (vmsdbgout_begin_epilogue): New function.
23963         (vmsdbgout_type_decl): New function.
23964
23965 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
23966
23967         * vmsdbg.h: Update copyright.
23968
23969 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
23970
23971         * vmsdbg.h (DST_K_TBG): New DST constant.
23972         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
23973         (write_modbeg): Cast module_language to avoid warning.
23974         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
23975
23976 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
23977
23978         PR other/44034
23979         * target.def, doc/tm.texi.in, genhooks.c: New files.
23980         * target.h: Instead of defining individual hook members,
23981         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
23982         include target.def.
23983         * target-def.h: Instead of defining individual hook initializers,
23984         include target-hooks-def.h.
23985         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
23986         targetm.live_on_entry -> targetm.extra_live_on_entry
23987         targetm.sched.md_finish ->targetm.sched.finish
23988         targetm.sched.md_init -> targetm.sched.init
23989         targetm.sched.md_init_global -> targetm.sched.init_global
23990         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
23991         targetm.asm_out.except_table_label ->
23992           targetm.asm_out.emit_except_table_label
23993         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
23994         targetm.target_help -> targetm.help
23995         targetm.vectorize.builtin_support_vector_misalignment ->
23996           targetm.vectorize.support_vector_misalignment
23997         targetm.file_start_app_off -> targetm.asm_file_start_app_off
23998         targetm.file_start_file_directive ->
23999          targetm.asm_file_start_file_directive
24000         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
24001         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
24002         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
24003         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
24004           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
24005         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
24006           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
24007         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
24008         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
24009         * Makefile.in (TARGET_H): Depend on target.def.
24010         (TARGET_DEF_H): Depend on target-hooks-def.h.
24011         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
24012         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
24013         * doc/tm.texi: Regenerate.
24014
24015         * Makefile.in (s-tm-texi): Remove stray tab / rule.
24016
24017         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
24018         (targetm.sched.init): Likewise.
24019
24020 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
24021
24022         PR bootstrap/44713
24023         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
24024         (function_arg_advance_32): Const-ify TYPE parameter.
24025         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
24026         (ix86_function_arg_advance): Change type of NAMED to bool.
24027         (function_arg_32): Const-ify CUM and TYPE parameters.
24028         (function_arg_64): Likewise.  Change type of NAMED to bool.
24029         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
24030         to bool.
24031         (ix86_function_arg): Change type of NAMED to bool.
24032         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
24033         last argument as a bool.
24034
24035 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
24036
24037         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
24038         (OVERRIDE_OPTIONS): Add note of obsolescence.
24039         Replace references with references to TARGET_OPTION_OVERRIDE.
24040         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
24041          the macro).
24042         * targhooks.c (default_target_option_override): New function.
24043         * targhooks.h (default_target_option_override): Declare.
24044         * target.h (struct gcc_target): Add override member to
24045         target_option member.
24046         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
24047         targetm.target_option.override call.
24048         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
24049         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
24050
24051 2010-06-29  Jan Hubicka  <jh@suse.cz>
24052
24053         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
24054
24055 2010-06-29  Jan Hubicka  <jh@suse.cz>
24056
24057         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
24058         unreachable.
24059         (rebuild_frequencies): New function.
24060         * predict.h (rebuild_frequencies): Declare.
24061         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
24062         entry block and edge reaching new_entry.
24063         (tree_function_versioning): When doing partial cloning, rebuild
24064         frequencies when done.
24065         * passes.c (execute_function_todo): Use rebild_frequencies.
24066
24067 2010-06-29  Richard Guenther  <rguenther@suse.de>
24068
24069         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
24070         * tree-flow.h (enum noalias_state): Remove.
24071         (struct var_ann_d): Remove noalias_state member.
24072
24073 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
24074
24075         PR target/43902
24076         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
24077         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
24078         (maddhidi4): Likewise.
24079
24080         Revert parts of the change for PR25130.
24081         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
24082         MEM_ALIAS_SET.
24083
24084 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
24085
24086         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
24087         targetm.calls.function_incoming_arg, and
24088         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
24089         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
24090         * target.h (struct gcc_target): Add function_arg_advance,
24091         function_arg, and function_incoming_arg fields.
24092         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
24093         (TARGET_FUNCTION_INCOMING_ARG): Define.
24094         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
24095         and TARGET_FUNCTION_INCOMING_ARG.
24096         * targhooks.h (default_function_arg_advance): Declare.
24097         (default_function_arg, default_function_incoming_arg): Declare.
24098         * targhooks.c (default_function_arg_advance): New function.
24099         (default_function_arg, default_function_incoming_arg): New function.
24100         * config/i386/i386.c (function_arg_advance): Rename to...
24101         (ix86_function_arg_advance): ...this.  Make static.
24102         (function_arg): Rename to...
24103         (ix86_function_arg): ...this.  Make static.
24104         (TARGET_FUNCTION_ARG_ADVANCE): Define.
24105         (TARGET_FUNCTION_ARG): Define.
24106         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
24107         (FUNCTION_ARG): Delete.
24108         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
24109         (function_arg): Delete prototype.
24110
24111 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
24112
24113         * reginfo.c (init_reg_sets_1): Adjust comments.
24114         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
24115         * calls.c (prepare_call_address): Likewise.
24116         (emit_call_1): Use targetm.calls.return_pops_args.
24117         (expand_call): Likewise.
24118         * function.c (assign_parms): Likewise.
24119         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
24120         * target.h (struct gcc_target) [struct calls]: Add
24121         return_pops_args field.
24122         * targhooks.h (default_return_pops_args): Declare.
24123         * targhooks.c (default_return_pops_args): Define.
24124         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
24125         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
24126         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
24127         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
24128         documentation.
24129         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
24130         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
24131         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
24132         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
24133         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
24134         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
24135         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
24136         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
24137         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
24138         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
24139         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
24140         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
24141         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
24142         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
24143         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
24144         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
24145         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
24146         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
24147         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
24148         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
24149         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
24150         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
24151         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
24152         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
24153         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
24154         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
24155         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
24156         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
24157         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
24158         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
24159         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
24160         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
24161         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
24162         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
24163         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
24164         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
24165         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
24166         * config/i386/i386.c (ix86_return_pops_args): Make static.
24167         Constify arguments.
24168         (TARGET_RETURN_POPS_ARGS): Define.
24169         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
24170         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
24171         (TARGET_RETURN_POPS_ARGS): Define.
24172         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
24173         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
24174         (TARGET_RETURN_POPS_ARGS): Define.
24175
24176 2010-06-29  Richard Guenther  <rguenther@suse.de>
24177
24178         PR middle-end/44667
24179         * tree-inline.c (initialize_inlined_parameters): Make sure
24180         to remap the inlined parameter variable substitutions types.
24181
24182 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
24183
24184         PR rtl-optimization/44659
24185         * combine.c (make_compound_operation) <SUBREG>: Do not return the
24186         result of force_to_mode if it partially re-expanded the compound.
24187
24188 2010-06-28  Jan Hubicka  <jh@suse.cz>
24189
24190         PR middle-end/44671
24191         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
24192         RESULT_DECL.
24193
24194 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
24195
24196         * double-int.h (force_fit_type_double): Remove declaration.
24197         * double-int.c (force_fit_type_double): Move to tree.c.
24198         * tree.h (force_fit_type_double): Declare.
24199         * tree.h (force_fit_type_double): Moved from double-int.c. Use
24200         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
24201         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
24202         * convert.c (convert_to_pointer): Adjust call to
24203         force_fit_type_double.
24204         * tree-vrp.c (extract_range_from_assert,
24205         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
24206         * fold-const.c: Update comment.
24207         (int_const_binop, fold_convert_const_int_from_int,
24208         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
24209         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
24210         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
24211         round_up_loc): Adjust call to force_fit_type_double.
24212
24213 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
24214
24215         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
24216
24217 2010-06-28  Martin Jambor  <mjambor@suse.cz>
24218
24219         * tree-sra.c (convert_callers): New parameter, change fndecls of
24220         recursive calls.
24221         (modify_function): Pass the old decl to convert_callers.
24222
24223 2010-06-28  Martin Jambor  <mjambor@suse.cz>
24224
24225         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
24226         ipa_check_create_node_params and ipa_initialize_node_params with
24227         checking asserts they are not necessary.
24228
24229 2010-06-28  Jan Hubicka  <jh@suse.cz>
24230
24231         PR tree-optimization/44687
24232         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
24233
24234 2010-06-28  Martin Jambor  <mjambor@suse.cz>
24235
24236         PR c++/44535
24237         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
24238         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
24239         instead of BINFO_BASE_BINFO.
24240
24241 2010-06-28  Michael Matz  <matz@suse.de>
24242
24243         PR middle-end/44592
24244         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
24245         proper VDEF chain for intermediate stores in the sequence.
24246
24247 2010-06-28  Jan Hubicka  <jh@suse.cz>
24248
24249         PR tree-optimization/44357
24250         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
24251         uninlinable functions.
24252
24253 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
24254
24255         * config.gcc (powerpc*-*-*): Handle titan.
24256         * config/rs6000/rs6000.c (titan_cost): New costs.
24257         (rs6000_override_options): Add "titan" to processor_target_table.
24258         Add Titan to branch alignment logic.
24259         Correctly set rs6000_cost for titan.
24260         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
24261         * config/rs6000/titan.md: New file.
24262         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
24263
24264 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
24265
24266         * tree-browser.c (TB_history_stack): Convert to a VEC.
24267         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
24268         (TB_history_prev): Likewise.
24269
24270 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
24271
24272         * vec.h (vec_heap_free): Add parentheses around free.
24273
24274 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
24275
24276         * system.h: Poison GCC_EXCEPT_H for front-end files.
24277
24278         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
24279         langhook.
24280         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
24281         Define to NULL by default.
24282         * except.h: Define GCC_EXCEPT_H.
24283         (doing_eh): Remove prototype.
24284         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
24285         (lang_protect_cleanup_actions): Remove.
24286         * except.c (lang_protect_cleanup_actions): Remove.
24287         (doing_eh): Remove.
24288         (gen_eh_region): Don't check doing_eh here.
24289         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
24290         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
24291         instead of lang_protect_cleanup_actions.
24292         * omp-low.c (maybe_catch_exception): Likewise.
24293         * Makefile.in: Update dependencies.
24294
24295 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
24296
24297         * cgraph.h (struct varpool_node): new used_from_object_file flag.
24298         (struct cgraph_local_info): new used_from_object_file flag.
24299         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
24300         (cgraph_clone_node): initialize used_from_object_file.
24301         (cgraph_create_virtual_clone): initialize used_from_object_file.
24302         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
24303         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
24304         when compiling with -fwhole-program.
24305         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
24306         internal resolver.
24307         * ipa.c (function_and_variable_visibility): Set externally_visible
24308         flag of varpool_node if used_from_object_file flag is set.
24309         (cgraph_externally_visible_p): check used_from_object_file flag.
24310         * doc/invoke.texi (-fwhole-program option): Change description of
24311         externally_visible attribute accordingly.
24312         * doc/extend.texi (externally_visible): Ditto.
24313
24314 2010-06-27  Jan Hubicka  <jh@suse.cz>
24315
24316         * params.def (max-inline-insns-auto): Default to 40.
24317         * doc/invoke.texi (max-inline-insns-auto): Document the change.
24318
24319 2010-06-27  Jan Hubicka  <jh@suse.cz>
24320
24321         PR middle-end/44671
24322         PR middle-end/44686
24323         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
24324         signature change.
24325         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
24326         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
24327
24328 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
24329
24330         * target.h (struct gcc_target): Add register_move_cost field.
24331         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
24332         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
24333         * targhooks.c (default_register_move_cost): New function.
24334         * targhooks.h (default_register_move_cost): Declare function.
24335         * defaults.h (REGISTER_MOVE_COST): Delete.
24336         * ira-int.h (ira_register_move_cost): Update comment.
24337         * ira.c (ira_register_move_cost): Update comment.
24338         * reload.h (register_move_cost): Declare.
24339         * reginfo.c (register_move_cost): New function.
24340         (move_cost): Update comment.
24341         (init_move_cost, memory_move_secondary_cost): Replace
24342         REGISTER_MOVE_COST with register_move_cost.
24343         * postreload.c (reload_cse_simplify_set): (Ditto.).
24344         * reload.c (find_valid_class, find_reloads): (Ditto.).
24345         * reload1.c (choose_reload_regs): (Ditto.).
24346         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
24347         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
24348         * doc/md.texi (can_create_pseudo_p): Update documentation.
24349
24350         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
24351         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
24352         * config/i386/i386.h (ix86_memory_move_cost): Make static.
24353         (TARGET_MEMORY_MOVE_COST): Define.
24354
24355         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
24356         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
24357         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
24358         (TARGET_MEMORY_MOVE_COST): Define.
24359
24360 2010-06-27  Richard Guenther  <rguenther@suse.de>
24361
24362         PR tree-optimization/44683
24363         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
24364         false edge from the inverted condition.
24365
24366 2010-06-27  Richard Guenther  <rguenther@suse.de>
24367
24368         PR middle-end/44684
24369         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
24370         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
24371         for register LHS.  Or non-store assignments.
24372
24373 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
24374
24375         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
24376         (sparc_emit_set_const64): Likewise.  Remove disabled code.
24377         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
24378         (sparc_emit_set_const64): Likewise.
24379
24380 2010-06-26  Catherine Moore  <clm@codesourcery.com>
24381
24382         * config/mips/mips.md (alu_type): New attribute.
24383         (type): Infer type from alu_type.
24384         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
24385         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
24386         *subsi3_extended, negsi2, negdi2, *low<mode>,
24387         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
24388         xor<mode>3, *nor<mode>3,
24389         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
24390         *zero_extendhi_truncqi):  Set alu_type instead of type.
24391
24392 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
24393
24394         * config/alpha/alpha.c (alpha_need_linkage): Adjust
24395         splay_tree_new_ggc call.
24396         (alpha_use_linkage): Likewise.
24397
24398 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
24399
24400         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
24401         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
24402         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
24403         (static_specs): Remove switches_need_spaces.
24404         (process_command, do_self_spec): Hardcode handling "-o" instead of
24405         checking switches_need_spaces.
24406         * system.h (SWITCHES_NEED_SPACES): Poison.
24407
24408 2010-06-26  Richard Guenther  <rguenther@suse.de>
24409
24410         PR tree-optimization/44393
24411         * tree-loop-distribution.c (generate_loops_for_partition): Fix
24412         stmt removal and VOP renaming.
24413         (generate_memset_zero): Remove redundant stmt updating.
24414         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
24415         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
24416
24417 2010-06-26  Jan Hubicka  <jh@suse.cz>
24418
24419         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
24420         edges comming from header are equivalent.
24421         (visit_bb): Handle PHIs correctly.
24422         * tree-inline.c (copy_phis_for_bb): Be able to copy
24423         PHI from entry edge.
24424         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
24425
24426 2010-06-26  Richard Guenther  <rguenther@suse.de>
24427
24428         PR middle-end/44674
24429         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
24430         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
24431
24432 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
24433
24434         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
24435         add_infile, alloc_switch): New.
24436         (process_command): Remove variable lang_n_infiles.  Process
24437         options in a single pass.  Use new functions for allocating
24438         infiles and switches arrays.  Properly skip operands of
24439         -Xpreprocessor and -Xassembler.
24440
24441 2010-06-26  Jan Hubicka  <jh@suse.cz>
24442
24443         PR middle-end/44671
24444         * cgraphunit.c (cgraph_function_versioning): Remove wrong
24445         cgraph_make_decl_local call; fix typo copying RTL data.
24446
24447 2010-06-25  DJ Delorie  <dj@redhat.com>
24448
24449         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
24450         (m32c_output_aligned_common): Likewise.
24451         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
24452         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
24453         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
24454         (m32c_register_pragmas): Register it.
24455         * config/m32c/m32c.c (m32c_get_pragma_address): New.
24456         (m32c_insert_attributes): Set #pragma address decls volatile.
24457         (pragma_entry_eq): New.
24458         (pragma_entry_hash): New.
24459         (m32c_note_pragma_address): New.
24460         (m32c_get_pragma_address): New.
24461         (m32c_output_aligned_common): New.
24462         * doc/extend.texi: Document the new pragma.
24463
24464         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
24465         also.
24466         * config/m32c/predicates.md (m32c_any_operand): Check the code
24467         instead of memory_operand so as to allow matching volatile MEMs.
24468         (m32c_nonimmediate_operand): Likewise.
24469         (mra_operand): Allow volatiles.
24470
24471 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
24472
24473         PR debug/44610
24474         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
24475         address if the offset is unknown.
24476
24477 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
24478
24479         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
24480         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
24481         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
24482         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
24483         to ia64_start_function. Invoke it.
24484         * config/ia64/ia64.c (ia64_start_function): Call new function
24485         dwarf2out_vms_debug_main_pointer.
24486
24487 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
24488
24489         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
24490         statements computing the true predicate.
24491
24492 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
24493
24494         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
24495         to boolean_true_node.
24496         (reset_bb_predicate): New.
24497         (predicate_bbs): Call reset_bb_predicate.
24498
24499 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
24500
24501         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
24502         (tree_if_conversion): Returns true when something has been changed.
24503         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
24504         changed something.
24505
24506 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
24507
24508         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
24509         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
24510         * tree-if-conv.c: Include dbgcnt.h.
24511         (tree_if_conversion): Use if_conversion_tree to count the number of
24512         if-convertible loops.
24513
24514 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
24515
24516         * common.opt (fprefetch-loop-arrays): Re-define
24517         -fprefetch-loop-arrays as a tri-state option with the initial
24518         value of -1.
24519         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
24520         pass only when flag_prefetch_loop_arrays > 0.
24521         * toplev.c (process_options): Note that, with tri-states,
24522         flag_prefetch_loop_arrays>0 means prefetching is enabled.
24523         * config/i386/i386.c (override_options): Enable prefetching at -O3
24524         for a set of CPUs that sw prefetching is helpful.
24525         (software_prefetching_beneficial_p): New.  Return TRUE if software
24526         prefetching is beneficial for the given CPU.
24527
24528 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
24529
24530         PR rtl-optimization/44326
24531         * implicit-zee.c (find_removable_zero_extends): Replace
24532         INSN_P with NONDEBUG_INSN_P.
24533
24534 2010-06-25  Martin Jambor  <mjambor@suse.cz>
24535
24536         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
24537         (struct ipa_node_params): Removed the modification_analysis_done flag.
24538         (ipa_is_param_modified): Removed.
24539         (ipa_analyze_node): Declare.
24540         (ipa_compute_jump_functions): Remove declaration.
24541         (ipa_count_arguments): Likewise.
24542         (ipa_detect_param_modifications): Likewise.
24543         (ipa_analyze_params_uses): Likewise.
24544         * ipa-prop.c (struct param_analysis_info): New type.
24545         (visit_store_addr_for_mod_analysis): Removed.
24546         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
24547         moved down in the file.
24548         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
24549         (ipa_count_arguments): Made static.
24550         (mark_modified): New function.
24551         (is_parm_modified_before_call): New function.
24552         (compute_pass_through_member_ptrs): New parameter parms_info, call
24553         is_parm_modified_before_call instead of ipa_is_param_modified.
24554         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
24555         it to compute_pass_through_member_ptrs.
24556         (ipa_compute_jump_functions): New parameter parms_info, pass it to
24557         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
24558         on the callee if it is analyzed.  Made static.
24559         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
24560         is_parm_modified_before_call instead of ipa_is_param_modified.
24561         (ipa_analyze_call_uses): New parameter parms_info, pass it to
24562         ipa_analyze_indirect_call_uses.
24563         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
24564         ipa_analyze_call_uses.
24565         (ipa_analyze_params_uses): New parameter parms_info, pass it to
24566         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
24567         (ipa_analyze_node): New function.
24568         (ipa_print_node_params): Do not dump the modified flag.
24569         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
24570         it.  Do not stream the modified parameter flag.
24571         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
24572         it.  Do not stream the modified parameter flag.
24573         * ipa-cp.c (ipcp_analyze_node): Removed.
24574         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
24575         with only a call to ipa_analyze_node.
24576         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
24577         node with only a call to ipa_analyze_node.
24578
24579 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24580
24581         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
24582
24583 2010-06-25  Jan Hubicka  <jh@suse.cz>
24584
24585         * tree-pass.h (pass_split_functions): Declare.
24586         * opts.c (decode_options): Enable function splitting at -O2
24587         * timevar.def (TV_IPA_FNSPLIT): New macro.
24588         * ipa-split.c: New file.
24589         * common.opt (-fpartial-inlining): New flag.
24590         * Makefile.in (ipa-split.o): New object file.
24591         * passes.c (init_optimization_passes): Add ipa-split.
24592         * params.def (partial-inlining-entry-probability): New parameters.
24593         * doc/invoke.texi (-fpartial-inlining): New.
24594
24595 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24596
24597         PR 44665
24598         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
24599         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
24600         (gimplify_expr): Likewise.
24601
24602 2010-06-25  Martin Jambor  <mjambor@suse.cz>
24603
24604         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
24605         statements instead of bailing out on them.
24606         (ipa_analyze_indirect_call_uses): Do not require that loads from the
24607         parameter are in the same BB as the condition.  Update comments.
24608
24609 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
24610
24611         PR middle-end/43866
24612         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
24613         true or always false, return NULL_TREE.
24614         (tree_unswitch_single_loop): Optimize conditions even when reaching
24615         max-unswitch-level parameter.  If num > 0, optimize first all conditions
24616         using entry checks, then do still reachable block discovery and consider
24617         only conditions in still reachable basic blocks in the loop.
24618
24619         PR tree-optimization/44539
24620         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
24621         the call doesn't have LHS, but has VDEF.
24622
24623 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
24624
24625         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
24626         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
24627         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
24628         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
24629         * system.h (MODIFY_TARGET_NAME): Poison.
24630
24631 2010-06-25  Alan Modra  <amodra@gmail.com>
24632
24633         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
24634         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
24635         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
24636         CMODEL_LARGE as default.
24637         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
24638         (offsettable_ok_by_alignment): Delete.
24639         (rs6000_emit_move): Remove mcmodel=medium optimization.
24640
24641 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
24642
24643         With large parts from Jim Wilson:
24644         PR target/43902
24645         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
24646         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
24647         * optabs.c (optab_for_tree_code): Likewise.
24648         (expand_widen_pattern_expr): Likewise.
24649         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
24650         out of execute_optimize_widening_mul.
24651         (convert_plusminus_to_widen): New function.
24652         (execute_optimize_widening_mul): Use the two new functions.
24653         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
24654         Remove code to generate widening multiply-accumulate.  Add support
24655         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
24656         * gimple-pretty-print.c (dump_ternary_rhs): New function.
24657         (dump_gimple_assign): Call it when appropriate.
24658         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
24659         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
24660         (expand_gimple_stmt_1): Likewise.
24661         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
24662         WIDEN_MULT_MINUS_EXPR.
24663         * tree-ssa-operands.c (get_expr_operands): Likewise.
24664         * tree-inline.c (estimate_operator_cost): Likewise.
24665         * gimple.c (extract_ops_from_tree_1): Renamed from
24666         extract_ops_from_tree.  Add new arg for a third operand; fill it.
24667         (gimple_build_assign_stat): Support operations with three operands.
24668         (gimple_build_assign_with_ops_stat): Likewise.
24669         (gimple_assign_set_rhs_from_tree): Likewise.
24670         (gimple_assign_set_rhs_with_ops_1): Renamed from
24671         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
24672         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
24673         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
24674         WIDEN_MULT_MINUS_EXPR.
24675         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
24676         (extract_ops_from_tree_1): Adjust declaration.
24677         (gimple_assign_set_rhs_with_ops_1): Likewise.
24678         (gimple_build_assign_with_ops): Pass NULL for last operand.
24679         (gimple_build_assign_with_ops3): New macro.
24680         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
24681         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
24682         functions.
24683         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
24684         (verify_gimple_assign): Call it.
24685         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
24686         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
24687         functions for dealing with three-operand statements.
24688         * tree.c (commutative_ternary_tree_code): New function.
24689         * tree.h (commutative_ternary_tree_code): Declare it.
24690         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
24691         ternary statements.
24692         (gimple_assign_nonzero_warnv_p): Likewise.
24693         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
24694         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
24695         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
24696         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
24697         (struct hashtable_expr): New member ternary in the union.
24698         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
24699         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
24700         (iterative_hash_hashable_expr): Likewise.
24701         (print_expr_hash_elt): Handle EXPR_TERNARY.
24702         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
24703         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
24704         statements.  Handle GIMPLE_TERNARY_RHS.
24705
24706 2010-06-25  Jan Hubicka  <jh@suse.cz>
24707
24708         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
24709
24710 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
24711
24712         PR c/44517
24713         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
24714         parameters are not good.
24715         (c_parser_parameter_declaration): Error unknown type name if the type
24716         name can't start declaration specifiers.
24717
24718 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
24719
24720         * gcc.c (translate_options): Don't mention +e in comment.
24721         (process_command): Don't handle +e specially.
24722
24723 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
24724
24725         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
24726
24727         * ira-build.c (merge_hard_reg_conflicts): New function.
24728         (create_cap_allocno, copy_info_to_removed_store_destinations,
24729         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
24730         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
24731         (remove_unnecessary_allocnos, remove_low_level_allocnos)
24732         copy_nifo_to_removed_store_destination): Use them.
24733         * ira-lives.c (make_hard_regno_born): New function, split out of
24734         make_regno_born.
24735         (make_allocno_born): Likewise.
24736         (make_hard_regno_dead): New function, split out of make_regno_dead.
24737         (make_allocno_dead): Likewise.
24738         (inc_register_pressure): New function, split out of set_allocno_live.
24739         (dec_register_pressure): New function, split out of clear_allocno_live.
24740         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
24741         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
24742         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
24743         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
24744         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
24745         mark_pseudo_regno_live.
24746         (process_bb_node_lives): Use mark_pseudo_regno_live,
24747         make_hard_regno_born and make_allocno_dead.
24748         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
24749         set_allocno_live, clear_allocno_live): Delete functions.
24750
24751         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
24752         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
24753         functions.
24754         (ira_flattening): Use ira_parent_allocno.
24755         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
24756         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
24757
24758         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
24759         statement.
24760
24761         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
24762         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
24763         minmax_set_iter_cond, minmax_set_iter_next,
24764         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
24765         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
24766         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
24767         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
24768         uses changed.
24769
24770         * ira-int.h (struct live_range, live_range_t): Renamed from struct
24771         ira_allocno_live_range and allocno_live_range_t; all uses changed.
24772         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
24773         All uses changed.
24774
24775 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
24776
24777         * thumb2.md (thumb2_tlobits_cbranch): Delete.
24778         (peephole2 to convert zero_extract/compare of single bit to
24779          lshift/compare): New.
24780
24781 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
24782
24783         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
24784         recursive call and call to 'int_const_binop'.
24785         (build_range_check, fold_cond_expr_with_comparison, unextend,
24786         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
24787         multiple_of_p): Adjust call to const_binop.
24788
24789 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
24790
24791         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
24792         determine size of XFmode operand.
24793         (XFmode extended DFmode push splitter): Ditto.
24794         (XFmode extended SFmode push splitter): Ditto.
24795
24796 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
24797
24798         PR target/44588
24799         * config/i386/i386.md (extract_code): New.
24800         (<u>divmodqi4): Likewise.
24801         (divmodhiqi3): Likewise.
24802         (udivmodhiqi3): Likewise.
24803         (<u>divqi3): Remvoved.
24804
24805 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
24806
24807         PR middle-end/44492
24808         * recog.h (struct recog_data): Add is_asm field.
24809         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
24810         present in constraints of inline-asm operand and memory operand
24811         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
24812         (extract_insn): Initialize recog_data.is_asm.
24813         * doc/md.texi (Constraints): Document operand side-effect rules.
24814
24815 2010-06-24  Andi Kleen  <ak@linux.intel.com>
24816
24817         * c-parser.c (c_parser_conditional_expression): Call
24818         warn_for_omitted_condop.
24819         * doc/invoke.texi: Document omitted condop warning.
24820
24821 2010-06-24  Nick Clifton<nickc@redhat.com>
24822
24823         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
24824         insn in the sequence is a jump insn before setting its label.
24825
24826 2010-06-24  Alan Modra  <amodra@gmail.com>
24827
24828         * collect2.c (main): Match exactly --version and --help.
24829
24830 2010-06-24  DJ Delorie  <dj@redhat.com>
24831
24832         * config/m32c/m32c-pragma.c: Don't include rtl.h.
24833
24834 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
24835
24836         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
24837         using X87MODEF mode iterator.
24838         (pushsf splitter): Macroize splitter using P mode iterator.
24839         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
24840         mode iterator.
24841
24842         (*movxf_internal): Rename from *movxf_integer.
24843         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
24844         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
24845         (*movdf_internal): Rename from *movdf_integer.
24846         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
24847         (*movsf_internal): Rename from *movdf_1.
24848
24849 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
24850
24851         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
24852         (const_gimple_seq_node): Removed typedefs.
24853
24854         * gimple.h (gimple_seq_node_d, gimple_seq_node)
24855         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
24856
24857 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
24858
24859         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
24860         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
24861         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
24862         and CODE_FOR_vec_extract_lo_v4df.
24863
24864         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
24865         Changed to define_insn_and_split.
24866         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
24867         (vec_extract_lo_v16hi): Likewise.
24868         (vec_extract_lo_v32qi): Likewise.
24869         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
24870         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
24871
24872 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
24873
24874         PR target/44640
24875         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
24876         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
24877         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
24878         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
24879         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
24880
24881         PR target/44640
24882         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
24883
24884         PR other/44644
24885         * df-core.c (struct df): Rename to df_d.
24886         * df.h (struct df): Likewise.
24887         * dse.h (struct df): Remove forward declaration.
24888         * recog.h (struct insn_data): Rename to:
24889         (struct_insn_data_d).  Adjusted all users.
24890
24891 2010-06-23  Arnaud Charlet  <charlet@adacore.com
24892
24893         PR ada/22220
24894         * doc/install.texi: Update requirements to build GNAT.
24895
24896 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
24897
24898         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
24899         enum type.
24900         (m68k_sched_attr_opx_type): Remove unreachable return.
24901         (m68k_sched_attr_opy_type): Likewise.
24902         (m68k_sched_attr_size): Likewise.
24903         (sched_get_opxy_mem_type): Likewise.
24904         (m68k_sched_attr_op_mem): Likewise.
24905
24906 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
24907
24908         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
24909         new statement and adjust VDEF only if necessary.  Remove superfluous
24910         call to maybe_clean_or_replace_eh_stmt.
24911         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
24912         copy the flags.
24913         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
24914         * tree-inline.c (copy_bb): ...and not there.
24915
24916 2010-06-22  Cary Coutant  <ccoutant@google.com>
24917
24918         * dwarf2out.c (is_nested_in_subprogram): New function.
24919         (should_move_die_to_comdat): Use it.
24920         (copy_ancestor_tree): Don't mark DIEs here.
24921         (copy_decls_walk): Start walk from root of newly-added tree;
24922         mark DIEs here instead.
24923
24924 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
24925
24926         * config/i386/i386.md (unit): Also check sseishft1.
24927
24928 2010-06-22  Jan Hubicka  <jh@suse.cz>
24929
24930         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
24931         enabled.
24932
24933 2010-06-22  Jan Hubicka  <jh@suse.cz>
24934
24935         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
24936         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
24937         Return true if something changed.
24938         * df.h (df_confluence_function_n): Return bool.
24939         * df-core.c (df_worklist_propagate_forward,
24940         df_worklist_propagate_backward): Track changes and ages.
24941         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
24942         track ages.
24943         * dse.c (dse_confluence_n): Return always true.
24944
24945 2010-06-22  Jan Hubicka  <jh@suse.cz>
24946
24947         * bitmap.c (bitmap_clear_bit): Micro optimize.
24948
24949 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
24950
24951         * config/i386/i386.md (SWI1248x): New mode iterator.
24952         (SWI48x): Ditto.
24953         (SWI12): Ditto.
24954         (SWI24): Ditto.
24955
24956         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
24957         SWI1248x mode iterator.
24958         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
24959         using SWI124 mode iterator.
24960         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
24961         mode iterator.
24962         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
24963         *pushdi2_prologue_rex64 using P mode iterator.
24964         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
24965         using SWI48 mode iterator.
24966         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
24967         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
24968         using SWI1248x mode iterator.
24969         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
24970         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
24971         SWI48 mode iterator.
24972         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
24973         iterator.
24974         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
24975         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
24976         SWI12 mode iterator.
24977         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
24978         SWI12 mode iterator.
24979         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
24980         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
24981         SWI24 mode iterator.
24982         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
24983         SWI48 mode iterator.
24984         (mov<mode>_insn_1): New expander.
24985         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
24986         using SWI48x mode iterator.
24987
24988         (*movoi_internal_avx): Rename from *movoi_internal.
24989         (*movti_internal_rex64): Rename from *movti_rex64.
24990         (*movti_internal_sse): Rename from *movti_sse.
24991         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
24992         (*movdi_internal): Rename from *movdi_2.
24993         (*movsi_internal): Rename from *movsi_1.
24994         (*movhi_internal): Rename from *movhi_1.
24995         (*movqi_internal): Rename from *movqi_1.
24996
24997         (insv): Update the call to gen_movsi_insv_1 for rename.
24998         * config/i386/i386.c (promote_duplicated_reg): Ditto.
24999
25000 2010-06-22  Jan Hubicka  <jh@suse.cz>
25001
25002         * passes.c (execute_function_todo): Move call of statistics_fini_pass
25003         to ...
25004         (execute_todo) ... this one.
25005
25006 2010-06-22  Alan Modra  <amodra@gmail.com>
25007
25008         PR target/44364
25009         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
25010         * caller-save.c (insert_restore, insert_save): Use non-validate
25011         form of adjust_address.
25012
25013 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25014
25015         PR target/39690
25016         * config/pa/pa.c (override_options): Disable
25017         -freorder-blocks-and-partition.
25018
25019 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
25020
25021         PR target/44615
25022         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
25023
25024         * config/i386/i386.md (type): Add sseishft1
25025
25026         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
25027         (ppro_insn_load): Likewise.
25028         (ppro_insn_store): Likewise.
25029         (ppro_insn_both): Likewise.
25030
25031         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
25032         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
25033         for type.
25034         (*vec_extractv2di_1_avx): Likewise.
25035         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
25036         type.  Remove atom_unit.
25037         (*vec_extractv2di_1_sse2): Likewise.
25038
25039 2010-06-21  DJ Delorie  <dj@redhat.com>
25040
25041         * diagnostic.h (diagnostic_classification_change_t): New.
25042         (diagnostic_context): Add history and push/pop list.
25043         (diagnostic_push_diagnostics): Declare.
25044         (diagnostic_pop_diagnostics): Declare.
25045         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
25046         from pragmas in a history chain instead of the global table.
25047         (diagnostic_push_diagnostics): New.
25048         (diagnostic_pop_diagnostics): New.
25049         (diagnostic_report_diagnostic): Scan history chain to find state
25050         of diagnostics as of the diagnostic location.
25051         * opts.c (set_option): Pass UNKNOWN_LOCATION to
25052         diagnostic_classify_diagnostic.
25053         (enable_warning_as_error): Likewise.
25054         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
25055         use in the history chain.
25056         * doc/extend.texi: Document pragma GCC diagnostic changes.
25057
25058 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
25059
25060         * dwarf2out.c (add_linkage_name): New function.  Don't add
25061         anything to DW_TAG_member DIEs.
25062         (add_name_and_src_coords_attributes): Use it.
25063         (gen_variable_die): Call it for C++ static data members if
25064         specification is DW_TAG_member.
25065
25066         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
25067         C++ char16_t and char32_t.
25068
25069         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
25070         * genattrtab.c: Include vecprim.h.
25071         (cached_attrs, cached_attr_count, attrs_seen_once,
25072         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
25073         attrs_cached_after): New variables.
25074         (find_attrs_to_cache): New function.
25075         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
25076         (write_test_expr): Add attrs_cached argument, return it too,
25077         attempt to cache non-const attributes used more than once in
25078         a single case handling.
25079         (write_attr_get): Use find_attrs_to_cache, for caching candidates
25080         emit cached_* variables.  Adjust write_attr_set callers.
25081         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
25082         to find attributes that should be cached in this block.  Adjust
25083         write_test_expr callers.
25084         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
25085         callers.
25086         (make_automaton_attrs): Adjust write_test_expr caller.
25087
25088         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
25089         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
25090         (make_automaton_attrs): If find_tune_attr returns non-NULL,
25091         write separate internal_dfa_insn_code_* and insn_default_latency_*
25092         functions for each attribute's value and emit init_sched_attrs
25093         function and function pointers.
25094         * genattr.c (const_attrs, reservations): New variables.
25095         (gen_attr): Add const attributes to const_attrs vector.
25096         (check_tune_attr, find_tune_attr): New functions.
25097         (main): Add reservations to reservations vector.  If find_tune_attr
25098         returns true, add prototype for init_sched_attrs and make
25099         internal_dfa_insn_code and insn_default_latency function pointers,
25100         otherwise define init_sched_attrs as dummy macro.
25101         * cfgexpand.c: Include insn-attr.h.
25102         (gimple_expand_cfg): Call init_sched_attrs.
25103
25104         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
25105
25106         PR target/44575
25107         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
25108         va_arg from a set of register save slots into a temporary,
25109         if the container is bigger than type size, do the copying
25110         using smaller mode or using memcpy.
25111
25112         PR bootstrap/44426
25113         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
25114         prototype.
25115         (sel_print_to_dot): Remove macro.
25116         (sel_print): Likewise.  New prototype.
25117         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
25118         (sel_print): New function.
25119
25120 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25121
25122         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
25123         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
25124
25125 2010-06-21  Nick Clifton  <nickc@redhat.com>
25126
25127         * config/rx/rx.h (PTRDIFF_TYPE): Define.
25128         (SMALL_REGISTER_CLASS): Define (to zero).
25129         (PRINT_OPERAND): Delete.
25130         (PRINT_OPERAND_ADDRESS): Delete.
25131         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
25132         (rx_print_operand_address): Delete prototype.
25133         * config/rx/rx.c (rx_print_operand): Make static.
25134         Allow %H and %L to handle CONST_DOUBLEs.
25135         (rx_print_operand_address): Make static.
25136         (rx_gen_move_template): Rename local variable 'template' to
25137         out_template.
25138         (rx_function_arg): Do not pass unknown sized objects in registers.
25139         (TARGET_PRINT_OPERAND): Define.
25140         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25141
25142 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
25143
25144         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
25145
25146 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
25147
25148         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
25149         stack-alignment for simple leaf-functions.
25150
25151 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
25152
25153         * doc/install.texi: Document bootstrap-lto.
25154
25155 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
25156
25157         PR debug/44248
25158         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
25159         (input_function): Drop them here, if VTA is disabled.
25160
25161 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
25162
25163         PR target/44546
25164         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
25165         New predicate.
25166         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
25167         ix86_swapped_fp_comparsion_operator instead of
25168         ix86_fp_comparison_operator.
25169
25170         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
25171         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
25172         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
25173         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
25174         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
25175         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
25176
25177 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
25178
25179         PR other/32998
25180         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
25181         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
25182         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
25183         (decode_cmdline_option): Update for this return value.  Set
25184         orig_option_with_args_text field.  Set arg field for unknown
25185         options.  Make static.
25186         (decode_cmdline_options_to_array): New.
25187         (prune_options): Update handling of find_opt return value.
25188         * opts.c (read_cmdline_option): Take decoded option.  Return void.
25189         (read_cmdline_options): Take decoded options.
25190         (decode_options): Add parameters for decoded options.  Use
25191         decode_cmdline_options_to_array.  Use decoded options for -O
25192         scan.  Use integral_argument for -O parameters.  Update call to
25193         read_cmdline_options.
25194         (enable_warning_as_error): Update handling of find_opt return value.
25195         * opts.h: Update comment on unknown options.
25196         (struct cl_decoded_option): Update comments on opt_index and arg.
25197         Add orig_option_with_args_text.
25198         (decode_cmdline_option): Remove.
25199         (decode_cmdline_options_to_array): Declare.
25200         (decode_options): Update prototype.
25201         * toplev.c (save_argv): Remove.
25202         (save_decoded_options, save_decoded_options_count): New.
25203         (read_integral_parameter): Remove.
25204         (print_switch_values): Use decoded options.
25205         (toplev_main): Don't set save_argv.  Update call to decode_options.
25206         * toplev.h (read_integral_parameter): Remove.
25207         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
25208
25209 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
25210
25211         PR target/44072
25212         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
25213         immediate.
25214         * constraints.md (Pw, Px): New constraints.
25215         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
25216
25217 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
25218
25219         * config/i386/sse.md (fma4modesuffixf4): Removed.
25220         (ssemodesuffixf2s): Likewise.
25221         (ssemodesuffixf4): Likewise.
25222         (ssemodesuffixf2c): Likewise.
25223         (ssescalarmodesuffix2s): Likewise.
25224         (avxmodesuffixf2c): Likewise.
25225         (ssemodesuffix): New.
25226         (ssescalarmodesuffix): Likewise.
25227         Update patterns with ssemodesuffix and ssescalarmodesuffix.
25228
25229 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
25230
25231         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
25232
25233 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
25234
25235         * stor-layout.c (debug_rli): Remove unused local variables.
25236
25237 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
25238
25239         PR rtl-optimization/40900
25240         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
25241         original expression for later reuse.
25242         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
25243         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
25244
25245 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
25246
25247         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
25248         double_int_fits_in_uhwi_p): Implement as static inline.
25249         (double_int_xor): New inline function.
25250         (double_int_lrotate, double_int_rrotate, double_int_max,
25251         double_int_umax, double_int_smax, double_int_min, double_int_umin,
25252         double_int_smin): Declare.
25253         (lrotate_double, rrotate_double): Remove declaration.
25254         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
25255         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
25256         (double_int_lrotate, double_int_rrotate, double_int_max,
25257         double_int_umax, double_int_smax, double_int_min, double_int_umin,
25258         double_int_smin): New function.
25259         * fold-const.c (int_const_binop): Clean up, use double_int_*
25260         functions.
25261         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
25262         double_int_* and immed_double_int_const functions.
25263
25264 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
25265
25266         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
25267         * function.c (types_used_by_cur_var_decl): Likewise.
25268         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
25269
25270 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
25271
25272         * tree.h (record_layout_info): Change type of pending_statics field
25273         to a VEC.
25274         * stor-layout.c (start_record_layout): Store NULL into
25275         pending_statics.
25276         (debug_rli): Call debug_vec_tree instead of debug_tree.
25277         (place_field): Likewise.
25278         (finish_record_layout): Likewise.
25279
25280 2010-06-18  Alan Modra  <amodra@gmail.com>
25281
25282         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
25283
25284 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25285
25286         PR target/43740
25287         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
25288         for SET source operand from SET destination operand.
25289
25290 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
25291
25292         PR rtl-optimization/39871
25293         * reload1.c (init_eliminable_invariants): For flag_pic, disable
25294         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
25295         (function_invariant_p): Rule out a plus of frame or arg pointer with
25296         a SYMBOL_REF.
25297         * ira.c (find_reg_equiv_invariant_const): Likewise.
25298
25299 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
25300
25301         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
25302         print_operand_address and puts to output the operand for CONST.
25303
25304 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
25305
25306         PR debug/44572
25307         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
25308         hook.
25309
25310 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25311
25312         * v850-protos.h (print_operand): Delete.
25313         (print_operand_address): Delete.
25314         * v850.h (PRINT_OPERAND): Delete.
25315         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25316         (PRINT_OPERAND_ADDRESS): Delete.
25317         * v850.c (print_operand_address): Rename to...
25318         (v850_print_operand_address): ...this.  Make static. Call
25319         v850_print_operand.
25320         (print_operand): Rename to...
25321         (v850_print_operand): ...this.  Make static.  Call
25322         v850_print_operand_address.
25323         (v850_print_operand_punct_valid_p): New function.
25324         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
25325         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25326
25327 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25328
25329         * config/sh/sh-protos.h (print_operand): Delete.
25330         (print_operand_address): Delete.
25331         * config/sh/sh.h (PRINT_OPERAND): Delete.
25332         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25333         (PRINT_OPERAND_ADDRESS): Delete.
25334         * config/sh/sh.c (sh_print_operand_address): Make static.
25335         (sh_print_operand): Make static.  Call sh_print_operand_address
25336         and sh_print_operand.
25337         (sh_print_operand_punct_valid_p): New function.
25338         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
25339         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25340
25341 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25342
25343         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
25344         (mcore_print_operand_address): Delete.
25345         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
25346         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25347         (PRINT_OPERAND_ADDRESS): Delete.
25348         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
25349         (mcore_print_operand): Make static.
25350         (mcore_print_operand_punct_valid_p): New function.
25351         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
25352         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25353
25354 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25355
25356         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
25357         (print_operand_address): Delete.
25358         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
25359         (PRINT_OPERAND_ADDRESS): Delete.
25360         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
25361         static.
25362         (m68hc11_print_operand): Make static.
25363         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
25364
25365 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25366
25367         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
25368         (m32r_print_operand_address): Delete.
25369         * config/m32r/m32r.h (m32r_punct_chars): Delete.
25370         (PRINT_OPERAND): Delete.
25371         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25372         (PRINT_OPERAND_ADDRESS): Delete.
25373         * config/m32r/m32r.c (m32r_punct_chars): Make static.
25374         (m32r_print_operand_address): Make static.
25375         (m32r_print_operand): Make static.
25376         (m32r_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-17  Nathan Froyd  <froydnj@codesourcery.com>
25381
25382         * config/iq2000/iq2000-protos.h (print_operand): Delete.
25383         (print_operand_address): Delete.
25384         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
25385         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25386         (PRINT_OPERAND_ADDRESS): Delete.
25387         (iq2000_print_operand_punct): Delete.
25388         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
25389         (iq2000_print_operand_address): Make static.
25390         (iq2000_print_operand): Make static.
25391         (iq2000_print_operand_punct_valid_p): New function.
25392         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
25393         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25394
25395 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25396
25397         * config/frv/frv-protos.h (frv_print_operand): Delete.
25398         (frv_print_operand_address): Delete.
25399         * config/frv/frv.h (PRINT_OPERAND): Delete.
25400         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25401         (PRINT_OPERAND_ADDRESS): Delete.
25402         * config/frv/frv.c (frv_print_operand_address): Make static.
25403         (frv_print_operand): Make static.
25404         (frv_print_operand_punct_valid_p): New function.
25405         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
25406         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25407
25408 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25409
25410         * tree.h (vec_member): Declare.
25411         * tree.c (vec_member): Define.
25412
25413 2010-06-17  Richard Guenther  <rguenther@suse.de>
25414
25415         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
25416         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
25417
25418 2010-06-17  Richard Guenther  <rguenther@suse.de>
25419
25420         * tree-inline.c (declare_return_variable): Remove bogus code.
25421
25422 2010-06-17  Richard Guenther  <rguenther@suse.de>
25423
25424         * gimplify.c (gimplify_bind_expr): Always promote complex
25425         and vector variables to registers if possible.
25426
25427 2010-06-17  Richard Guenther  <rguenther@suse.de>
25428
25429         * expr.c (get_inner_reference): Use double_int for bit_offset
25430         calculation.
25431
25432 2010-06-16  DJ Delorie  <dj@redhat.com>
25433
25434         * common.opt (-fstrict-volatile-bitfields): new.
25435         * doc/invoke.texi: Document it.
25436         * fold-const.c (optimize_bit_field_compare): For volatile
25437         bitfields, use the field's type to determine the mode, not the
25438         field's size.
25439         * expr.c (expand_assignment): Likewise.
25440         (get_inner_reference): Likewise.
25441         (expand_expr_real_1): Likewise.
25442         * expmed.c (store_fixed_bit_field): Likewise.
25443         (extract_bit_field_1): Likewise.
25444         (extract_fixed_bit_field): Likewise.
25445
25446 2010-06-16  Richard Guenther  <rguenther@suse.de>
25447
25448         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
25449
25450 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
25451
25452         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
25453         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
25454         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
25455         * debug.c: Likewise.
25456         * sdbout.c: Likewise.
25457         * vmsdbgout.c: Likewise.
25458         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
25459         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
25460         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
25461         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
25462         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
25463         * dwarf2out.c (dw_fde_struct): New fields
25464         dw_fde_vms_{end,begin}_prologue.
25465         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
25466         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
25467         (dwarf2out_vms_end_prologue): New function.
25468         (dwarf2out_vms_begin_epilogue): New function.
25469         (dw_val_struct): New value dw_val_class_vms_delta.
25470         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
25471         begin_epilogue for VMS.
25472         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
25473         new static functions.
25474         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
25475         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
25476         static functions.
25477         (print_die): New case dw_val_class_vms_delta.
25478         (attr_checksum): Likewise.
25479         (same_dw_val_p: Likewise.
25480         (size_of_die): Likewise.
25481         (value_format): Likewise.
25482         (output_die): Likewise.
25483         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
25484         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
25485         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
25486         dwarf2out_cfi_begin_epilogue
25487         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
25488
25489 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
25490
25491         * config/cris/cris-protos.h (cris_print_operand): Delete.
25492         (cris_print_operand_address): Delete.
25493         * config/cris/cris.h (PRINT_OPERAND): Delete.
25494         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25495         (PRINT_OPERAND_ADDRESS): Delete.
25496         * config/cris/cris.c (cris_print_operand_address): Make static.
25497         (cris_print_operand): Make static.
25498         (cris_print_operand_punct_valid_p): New function.
25499         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
25500         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25501
25502 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
25503
25504         * config/arm/arm-protos.h (arm_print_operand): Delete.
25505         (arm_print_operand_address): Delete.
25506         * config/arm/arm.h (PRINT_OPERAND): Delete.
25507         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25508         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
25509         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
25510         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
25511         (arm_print_operand): Make static.
25512         (arm_print_operand_punct_valid_p): New function.
25513         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
25514         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25515
25516 2010-06-16  Nick Clifton  <nickc@redhat.com>
25517
25518         * config/rx/constraints.md (NEGint4): New constraint.
25519         * config/rx/rx.md (attr cc): Add set_zsc.
25520         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
25521         initialised.
25522         (cmpsf): Likewise.
25523         (call_internal): Clobber the cc0 register.
25524         (call_value_internal): Likewise.
25525         (cstoresi4): Likewise.
25526         (movsieq): Likewise.
25527         (movsine): Likewise.
25528         (addsi3): Add alternative to handle small negative constants.
25529         (sunsi3): Likewise.
25530         (addsi3): Do not set the O bit in the cc0 register.
25531         (adddi3): Likewise.
25532         (subsi3): Likewise.
25533         (subdi3): Likewise.
25534         (andsi3): Reorder alternatives to prefer shorter forms.
25535         (mulsi3): Likewise.
25536         (iorsi3): Likewise.
25537         (negsi2): Note that the cc0 flags are set.
25538         (rotlsi3): Note that only the Z and S bits are set in cc0.
25539         (lshrsi3): Likewise.
25540         (ashlsi3): Likewise.
25541         (subsf3): Use %Q for the MEM operand.
25542         (fix_truncsfsi2): Likewise.
25543         (floatsisf2): Likewise.
25544         (bitset): Remove early clobber from destination.
25545         (bitset_in_memory): Likewise.
25546         (lrintsf2): Clobber the cc0 register.
25547         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
25548         (rx_print_operand): Handle %N.
25549
25550 2010-06-16  Jan Hubicka  <jh@suse.cz>
25551
25552         * df-core.c (df_compact_blocks): Free problem_temps vector.
25553
25554 2010-06-16  Martin Jambor  <mjambor@suse.cz>
25555
25556         PR tree-optimization/43905
25557         * tree-sra.c: Include tree-inline.h.
25558         (create_abstract_origin): Removed.
25559         (modify_function): Version the call graph node instead of creating
25560         abstract origins and dealing with same_body aliases.
25561         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
25562         function is versionable.
25563         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
25564
25565 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
25566
25567         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
25568         (CHOOSE_DYNAMIC_LINKER): Update.
25569
25570 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
25571
25572         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
25573         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
25574         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
25575         *prefetch_3dnow_rex.
25576
25577 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
25578
25579         * target.h (struct asm_out):Add declare_constant_name field.
25580         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
25581         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
25582         * output.h (default_asm_declare_constant_name): Declare.
25583         (assemble_label): Update prototype.
25584         * varasm.c (assemble_constant_contents): Use
25585         targetm.asm_out.declare_constant_name target hook.
25586         (assemble_label): Add 'file' argument.
25587         (default_asm_declare_constant_name): New function.
25588         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
25589         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
25590         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
25591
25592         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
25593         * config/darwin.c (darwin_asm_declare_constant_name): New function.
25594         (machopic_output_indirection): Update assemble_label argument list.
25595         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
25596         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
25597
25598 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
25599
25600         PR middle-end/44391
25601         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
25602         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
25603
25604 2010-06-15  Richard Guenther  <rguenther@suse.de>
25605
25606         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
25607
25608 2010-06-15  Paul Brook  <paul@codesourcery.com>
25609
25610         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
25611         hard-float ABI.
25612
25613 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
25614
25615         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
25616         don't get a vector type for output.
25617
25618 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
25619
25620         PR fortran/44536
25621         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
25622         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
25623         (LANG_HOOKS_DECLS): Add it.
25624         * gimplify.c (omp_notice_variable): Call
25625         lang_hooks.decls.omp_report_decl.
25626
25627 2010-06-15  Martin Jambor  <mjambor@suse.cz>
25628
25629         PR lto/44464
25630         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
25631         on the newly dead SSA name.
25632
25633 2010-06-15  Alan Modra  <amodra@gmail.com>
25634
25635         * doc/invoke.texi: Add mcmodel to powerpc options.
25636         * configure.ac: Add HAVE_LD_LARGE_TOC test.
25637         * configure: Regenerate.
25638         * config.in: Regenerate.
25639         * config/rs6000/linux64.opt (mcmodel): New.
25640         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
25641         (TARGET_CMODEL, SET_CMODEL): Define.
25642         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
25643         select CMODEL_MEDIUM default.
25644         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
25645         (TARGET_CMODEL): Define default.
25646         * config/rs6000/rs6000.c (cmodel): New variable.
25647         (rs6000_explicit_options): Add cmodel field.
25648         (rs6000_handle_option): Handle -mcmodel.
25649         (create_TOC_reference): Add largetoc_reg param.  Generate high,
25650         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
25651         (rs6000_delegitimize_address): Recognise new toc reference rtl
25652         and minimal-toc rtl.
25653         (rs6000_legitimize_reload_address): Handle new toc references.
25654         (print_operand_address): Handle legitimate_constant_pool_address_p
25655         match before lo_sum.
25656         (rs6000_eliminate_indexed_memrefs): Tidy.
25657         (rs6000_emit_move): Tweak threshold for inlining constants.
25658         Keep rs6000_emit_allocate_stack large stack frame offsets
25659         loaded into r0 inline.
25660         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
25661         (tocrel_base, tocrel_offset): New variables.
25662         (toc_relative_expr_p): Set them here.
25663         (print_operand_address): Skip over any offset on constant pool address.
25664         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
25665         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
25666         (offsettable_ok_by_alignment): New function.
25667         (rs6000_emit_move): Address suitably aligned local symbol_refs
25668         relative to the toc pointer for -mcmodel=medium.
25669         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
25670         strict param.  Allow lo_sum version of addressing.  Verify reg
25671         used for -mminimal-toc and -mcmodel != small.  Update all callers.
25672         * config/rs6000/constraints.md: Update for above change.
25673         * config/rs6000/predicates.md: Likewise.
25674         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
25675         code.
25676         (tls_gd): Split for -mcmodel=medium/large.
25677         (tls_gd_high, tls_gd_low): New.
25678         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
25679         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
25680         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
25681         (largetoc_high, largetoc_low): New.
25682         (cmptf_internal2): Add clobber.
25683         * config/rs6000/rs6000-protos.h: Update.
25684
25685 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
25686
25687         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
25688         true if no prefetch is going to be generated for a given group.
25689         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
25690         estimate the prefetch_count.
25691         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
25692         prefetch count by considering the unroll_factor and prefetch_mod
25693         for is_loop_prefetching_profitable.
25694
25695 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
25696
25697         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
25698         anything if the argument is not a MEM.
25699
25700 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
25701
25702         PR debug/43650
25703         PR debug/44181
25704         PR debug/44247
25705         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
25706         debug stmts.
25707         (canonicalize_loop_ivs): Likewise.
25708
25709 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
25710
25711         PR debug/43656
25712         * haifa-sched.c (setup_insn_reg_pressure_info,
25713         update_register_pressure): Reject debug insns.
25714         (ready_sort): Don't setup reg pressure for debug insns.
25715         (schedule_insn): Don't update reg pressure for debug insns.
25716
25717 2010-06-14  Richard Guenther  <rguenther@suse.de>
25718
25719         * lto-streamer.c (cached_bp): Remove.
25720         (bitpack_delete): Likewise.
25721         (bitpack_create): Likewise.
25722         (bp_get_next_word): Likewise.
25723         (bp_pack_value, bp_unpack_value): Move ...
25724         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
25725         Re-implement.
25726         (struct bitpack_d): Likewise.
25727         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
25728         New inline functions.
25729         * lto-streamer-out.c (lto_output_bitpack): Remove.
25730         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
25731         (pack_value_fields): Adjust.
25732         (lto_write_tree): Likewise.
25733         (output_gimple_stmt): Likewise.
25734         (output_function): Likewise.
25735         * lto-streamer-in.c (input_gimple_stmt): Adjust.
25736         (input_function): Likewise.
25737         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
25738         (lto_input_bitpack): Remove.
25739         (lto_materialize_tree): Adjust.
25740         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
25741         * lto-cgraph.c (lto_output_edge): Adjust.
25742         (lto_output_node): Likewise.
25743         (lto_output_varpool_node): Likewise.
25744         (lto_output_ref): Likewise.
25745         (input_node): Likewise.
25746         (input_varpool_node): Likewise.
25747         (input_ref): Likewise.
25748         (input_edge): Likewise.
25749         (output_node_opt_summary): Likewise.
25750         (input_node_opt_summary): Likewise.
25751         * ipa-pure-const.c (pure_const_write_summary): Likewise.
25752         (pure_const_read_summary): Likewise.
25753         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
25754         (ipa_read_indirect_edge_info): Likewise.
25755         (ipa_write_node_info): Likewise.
25756         (ipa_read_node_info): Likewise.
25757
25758 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
25759
25760         PR target/44534
25761         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
25762         (vec_extract_lo_v16hi): Likewise.
25763         (vec_extract_lo_v32qi): Likewise.
25764
25765 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
25766
25767         PR bootstrap/44426
25768         * tree.h (build_call_expr): Don't define as vararg macro, instead
25769         add a prototype.
25770         * builtins.c (build_call_nofold): Remove.
25771         (expand_builtin_int_roundingfn, expand_builtin_pow,
25772         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
25773         expand_builtin_memset_args, expand_builtin_strcmp,
25774         expand_builtin_strncmp, expand_builtin_memory_chk): Use
25775         build_call_nofold_loc instead of build_call_nofold.
25776         (build_call_expr): New function.
25777
25778         PR tree-optimization/44508
25779         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
25780         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
25781         don't eliminate trivially dead stmts.
25782         * tree-vrp.c (vrp_finalize): Pass false as last argument
25783         to substitute_and_fold.
25784         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
25785         to substitute_and_fold.
25786         * tree-ssa-ccp.c (ccp_finalize): Likewise.
25787
25788         PR bootstrap/44509
25789         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
25790
25791 2010-06-14  Ira Rosen  <irar@il.ibm.com>
25792
25793         PR tree-optimization/44507
25794         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
25795         to build initial vector for BIT_AND_EXPR.
25796         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
25797
25798 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
25799
25800         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
25801         adjust z10prop set_attr.
25802
25803 2010-06-13  Jan Hubicka  <jh@suse.cz>
25804
25805         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
25806         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
25807         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
25808         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
25809         datastructure checks into checking asserts.
25810         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
25811         * tree-ssa-sccvn.c (VN_INFO): Likewise.
25812         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
25813         df_ref_create_structure): Likewise.
25814         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
25815         pool_free): Use gcc_checking_assert.
25816         * alias.c (get_alias_set): Likewise.
25817         * var-tracking.c (variable_htab_free, shared_hash_copy,
25818         canonicalize_values_mark, variable_merge_over_cur): Likewise.
25819         * lto-streamer.c (bp_unpack_value): Likewise.
25820
25821 2010-06-13  Richard Guenther  <rguenther@suse.de>
25822
25823         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
25824         Do not stream but initialize TYPE_CANONICAL to NULL.
25825         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
25826         * gimple.c (gimple_types_compatible_p): Disregard
25827         TYPE_STRUCTURAL_EQUALITY_P.
25828         (gimple_register_type): Use TYPE_CANONICAL as cache.
25829         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
25830         before registering common types.
25831         * config/i386/i386.c (ix86_function_arg_boundary): Do not
25832         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
25833         * tree.h (TYPE_CANONICAL): Clarify documentation.
25834
25835 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
25836
25837         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
25838         LIBCALL_VALUE): Remove macros.
25839         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
25840         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
25841         TARGET_FUNCTION_VALUE_REGNO_P): Define.
25842         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
25843         (ia64_function_value): Make static. Handle receiving the function
25844         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
25845
25846 2010-06-12  Jan Hubicka  <jh@suse.cz>
25847
25848         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
25849         at correct place.
25850
25851 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
25852
25853         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
25854
25855 2010-06-12  Jan Hubicka  <jh@suse.cz>
25856
25857         * df-core.c (df_clear_bb_info): New function.
25858         (df_set_blocks): bb_info is always allocated.
25859         (df_get_bb_info): Use block_info_elt_size.
25860         (df_set_bb_info): Likewise.
25861         (df_compact_blocks): Update for new block_info.
25862         (grow_bb_info): New function.
25863         * df-problems.c (df_grow_bb_info): Move to df-core.c
25864         (df_rd_set_bb_info): Remove.
25865         (df_rd_free_bb_info): Do not free block pool.
25866         (df_rd_alloc): Do not create pool, use check for
25867         obstack presence instead of NULL pointer for new blocks.
25868         (df_rd_free): DO not free alloc pool; clear block_info.
25869         (problem_RD): Add size of block info structure.
25870         (df_lr_set_bb_info): Remove.
25871         (df_lr_free_bb_info): Do not free block pool.
25872         (df_lr_alloc): Do not create pool, use check for
25873         obstack presence instead of NULL pointer for new blocks.
25874         (df_lr_free): DO not free alloc pool; clear block_info.
25875         (problem_LR): Add size of block info structure.
25876         (df_live_set_bb_info): Remove.
25877         (df_live_free_bb_info): Do not free block pool.
25878         (df_live_alloc): Do not create pool, use check for
25879         obstack presence instead of NULL pointer for new blocks.
25880         (df_live_free): DO not free alloc pool; clear block_info.
25881         (problem_LIVE): Add size of block info structure.
25882         (problem_CHAIN): Add size of block info structure.
25883         (df_byte_lr_set_bb_info): Remove.
25884         (df_byte_lr_free_bb_info): Do not free block pool.
25885         (df_byte_lr_alloc): Do not create pool, use check for
25886         obstack presence instead of NULL pointer for new blocks.
25887         (df_byte_lr_free): DO not free alloc pool; clear block_info.
25888         (problem_BYTE_LR): Add size of block info structure.
25889         (problem_NOTE): Add size of block info structure.
25890         (df_byte_MD_set_bb_info): Remove.
25891         (df_byte_MD_free_bb_info): Do not free block pool.
25892         (df_byte_MD_alloc): Do not create pool, use check for
25893         obstack presence instead of NULL pointer for new blocks.
25894         (df_byte_MD_free): DO not free alloc pool; clear block_info.
25895         (problem_BD): Add size of block info structure.
25896         * df-scan.c (df_scan_free_internal): Free block pool.
25897         (df_scan_set_bb_info): Remove.
25898         (df_scan_free_bb_info): Check for artificial_defs instead
25899         of bb_info being non-NULL.
25900         (df_scan_alloc): DO not create df_scan_block pool.
25901         (problem_SCAN): Set size of block info.
25902         (df_bb_refs_record): Do not allocate bb_info.
25903         * df.h (df_problem): Add block_info_elt_size.
25904         (struct dataflow): Change block_info to void *.
25905         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
25906         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
25907         in-line structures.
25908
25909 2010-06-12  Jan Hubicka  <jh@suse.cz>
25910
25911         PR tree-optimize/44485
25912         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
25913         containing use of return value of noreturn function.
25914
25915 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
25916
25917         * targhooks.c (default_function_value): Don't use
25918         FUNCTION_OUTGOING_VALUE.
25919         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
25920         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
25921
25922 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
25923
25924         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
25925         Add crtfastmath.o to extra_parts.
25926         * config/mips/crtfastmath.c: New.
25927         * config/mips/linux.h (ENDFILE_SPEC): New.
25928
25929 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
25930
25931         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
25932         old_type in parameter.
25933         (gcc_type_for_value): Update call to gcc_type_for_interval.
25934         (compute_type_for_level_1): Renamed compute_type_for_level.
25935         Update call to gcc_type_for_interval.
25936
25937 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
25938
25939         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
25940         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
25941
25942 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
25943
25944         * opts-common.c: Include options.h.
25945         (integral_argument): Move from opts.c.
25946         (decode_cmdline_option): New.  Based on read_cmdline_option.
25947         * opts.c (integral_argument): Move to opts-common.c.
25948         (read_cmdline_option): Move most contents to
25949         decode_cmdline_option.  Use %qs in diagnostics.
25950         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
25951         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
25952         decode_cmdline_option): New.
25953
25954 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
25955
25956         PR target/44481
25957         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
25958         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
25959         (partiysi2_cmp): Ditto.
25960         (*partiyhi2_cmp): Ditto.
25961         (*parityqi2_cmp): Remove.
25962
25963 2010-06-11  Jan Hubicka  <jh@suse.cz>
25964
25965         * bitmap.h (bmp_iter_next_bit): New.
25966         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
25967
25968 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
25969             Eric Botcazou  <ebotcazou@adacore.com>
25970
25971         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
25972         computed cost.
25973
25974 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
25975
25976         * config/i386/i386.md (unspec): New define_c_enum.
25977         (unspecv): Ditto.
25978
25979 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
25980
25981         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
25982
25983 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
25984
25985         PR middle-end/44483
25986         * tree-if-conv.c (bb_predicate_s): New struct.
25987         (bb_predicate_p): New.
25988         (bb_has_predicate): New.
25989         (bb_predicate): New.
25990         (set_bb_predicate): New.
25991         (bb_predicate_gimplified_stmts): New.
25992         (set_bb_predicate_gimplified_stmts): New.
25993         (add_bb_predicate_gimplified_stmts): New.
25994         (init_bb_predicate): New.
25995         (free_bb_predicate): New.
25996         (is_predicated): Use bb_predicate.
25997         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
25998         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
25999         before processing their successors.
26000         (clean_predicate_lists): Removed.
26001         (find_phi_replacement_condition): Use bb_predicate.
26002         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
26003         computations.
26004         (insert_gimplified_predicates): New.
26005         (combine_blocks): Call insert_gimplified_predicates.
26006         (tree_if_conversion): Call free_bb_predicate instead of
26007         clean_predicate_lists.
26008
26009 2010-10-11  Paul Brook  <paul@codesourcery.com>
26010
26011         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
26012         * config/arm/arm.c (all_architectures): Change v7e-m default to
26013         cortexm4.
26014         * config/arm/arm-cores.def: Add cortex-m4.
26015         * config/arm/arm-tune.md: Regenerate.
26016
26017 2010-06-11  Jan Hubicka  <jh@suse.cz>
26018
26019         * ipa-pure-const.c (special_builtlin_state): New function.
26020         (check_call): Use it instead of special casign BUILT_IN_RETURN.
26021         (propagate_pure_const): Use it.
26022
26023 2010-06-11  Jan Hubicka  <jh@suse.cz>
26024
26025         * df-problems.c (df_live_scratch): Convert to bitmap_head.
26026         (df_live_alloc): Initialize df_live_scratch when initializing
26027         problem_data.
26028         (df_live_transfer_function): Update uses of df_live_scratch.
26029         (df_live_free): Free problem_data; clear df_live_scratch before
26030         releasing the obstack.
26031         (df_md_free): Free problem data.
26032
26033 2010-06-11  Jan Hubicka  <jh@suse.cz>
26034
26035         * doc/invoke.texi (Wsuggest-attribute): Document.
26036         (Wmissing-noreturn): Remove.
26037         * ipa-pure-const.c (warn_function_noreturn): New function.
26038         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
26039         warn_missing_noreturn.
26040         * common.opt (Wsuggest-attribute=noreturn): New.
26041         * tree-flow.h (warn_function_noreturn): Declare.
26042         * tree-cfg.c (execute_warn_function_noreturn): Use
26043         warn_function_noreturn.
26044         (gate_warn_function_noreturn): New.
26045         (pass_warn_function_noreturn): Update.
26046
26047 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26048
26049         * c-typeck.c (handle_warn_cast_qual): Add loc
26050         parameter. Improve warning message.
26051         (build_c_cast): Pass location to handle_warn_cast_qual.
26052
26053 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
26054
26055         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
26056         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
26057         insn mnemonic.
26058         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
26059
26060 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
26061
26062         Fix bootstap on mips
26063         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
26064         be naming typedefs.
26065
26066 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
26067
26068         * system.h (helper_const_non_const_cast): New inline for
26069         gcc version <= 4.0.
26070         (CONST_CAST2): For gcc version <= 4.0 use
26071         new helper to do const/non-const casting.
26072
26073 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26074
26075         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
26076         * Makefile.in (OBJS-common): Include insn-enums.o.
26077         (insn-enums.o): New rule.
26078         (simple_generated_c): Add insn-enums.c.
26079         (build/genenums.o): New rule.
26080         (genprogmd): Add "enums".
26081         * genconstants.c (print_enum_type): Declare a C string array
26082         for each enum.
26083         * genenums.c: New file.
26084         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
26085         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
26086         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
26087
26088 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26089
26090         * doc/md.texi (define_enum_attr): Document.
26091         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
26092         * read-md.h (lookup_enum_type): Declare.
26093         * read-md.c (lookup_enum_type): New function.
26094         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
26095         * genattrtab.c (attr_desc): Add an enum_name field.
26096         (evaluate_eq_attr): Take the associated attribute as argument.
26097         Get the enum prefix from the enum_name field, if defined.
26098         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
26099         (simplify_test_exp): Pass attr to evaluate_eq_attr.
26100         (add_attr_value): New function, split out from...
26101         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
26102         (write_test_expr): Pass attr to evaluate_eq_attr.
26103         (write_attr_get): Use the enum_name as the enum tag, if defined.
26104         (write_attr_valueq): Use the enum_name as a prefix, if defined.
26105         (find_attr): Initialize enum_name.
26106         (main): Handle DEFINE_ENUM_ATTR.
26107         * gensupport.c (process_rtx): Likewise.
26108         * config/mips/mips.h (mips_tune_attr): Delete.
26109         * config/mips/mips.md (cpu): Use define_attr_enum.
26110
26111 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26112
26113         * doc/md.texi (define_c_enum, define_enum): Document.
26114         * read-md.h (md_constant): Add a parent_enum field.
26115         (enum_value, enum_type): New structures.
26116         (upcase_string, traverse_enum_types): Declare.
26117         * read-md.c (enum_types): New variable.
26118         (upcase_string, add_constant): New functions.
26119         (handle_constants): Don't create the hash table here.
26120         Use add_constant.
26121         (traverse_md_constants): Don't check for a null md_constants.
26122         (decimal_string, handle_enum, traverse_enum_types): New functions.
26123         (read_md_files): Initialize md_constants and md_enums.
26124         * genconstants.c (print_md_constant): Ignore info argument.
26125         Only print constants that belong to no enum.
26126         (print_enum_type): New function.
26127         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
26128         for each defined enum type.
26129         * config/mips/mips.md (processor): New define_enum.
26130         (unspec): New define_c_enum.
26131         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
26132         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
26133         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
26134         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
26135         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
26136         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
26137         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
26138         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
26139         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
26140         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
26141         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
26142         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
26143         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
26144         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
26145         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
26146         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
26147         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
26148         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
26149         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
26150         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
26151         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
26152         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
26153         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
26154         (UNSPEC_RDDSP): Move to mips-dsp.md.
26155         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
26156         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
26157         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
26158         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
26159         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
26160         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
26161         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
26162         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
26163         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
26164         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
26165         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
26166         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
26167         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
26168         Moved to mips-dspr2.md.
26169         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
26170         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
26171         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
26172         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
26173         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
26174         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
26175         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
26176         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
26177         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
26178         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
26179         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
26180         UNSPEC_LOONGSON_PSADBH)
26181         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
26182         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
26183         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
26184         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
26185         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
26186         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
26187         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
26188         (cpu): Update comment.
26189         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
26190         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
26191         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
26192         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
26193         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
26194         UNSPEC_LOONGSON_PCMPEQ)
26195         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
26196         UNSPEC_LOONGSON_PINSR_0)
26197         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
26198         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
26199         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
26200         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
26201         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
26202         UNSPEC_LOONGSON_PSADBH)
26203         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
26204         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
26205         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
26206         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
26207         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
26208         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
26209         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
26210         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
26211         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
26212         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
26213         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
26214         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
26215         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
26216         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
26217         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
26218         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
26219         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
26220         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
26221         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
26222         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
26223         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
26224         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
26225         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
26226         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
26227         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
26228         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
26229         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
26230         (UNSPEC_RDDSP): Moved from mips.md.
26231         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
26232         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
26233         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
26234         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
26235         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
26236         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
26237         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
26238         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
26239         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
26240         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
26241         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
26242         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
26243         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
26244         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
26245         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
26246         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
26247         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
26248         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
26249         (UNSPEC_SCC): Moved from mips.md.
26250         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
26251         "processor_type" to "processor".
26252         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
26253         * config/mips/mips.h (processor_type): Delete.
26254         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
26255         "processor_type" to "processor".
26256
26257 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26258
26259         * configure.ac (tm_include_list): Add insn-constants.h.
26260         * configure: Regenerate.
26261         * Makefile.in (GTM_H): Move insn-constants.h here from...
26262         (TM_H): ...here.
26263         * mkconfig.sh: Remove special handling for insn-constants.h.
26264
26265 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26266
26267         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
26268         (BUILD_MD): ...this new variable.
26269         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
26270         that include the old contents of simple_generated_h and
26271         simple_generated_c.
26272         (simple_generated_h, simple_generated_c): Include them.  Add
26273         insn-constants.h.
26274         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
26275         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
26276         Remove these dependencies from the main rule and include
26277         insn-conditions.md in the command line only if it appears
26278         in the dependency list.
26279         (insn-constants.h, s-constants): Delete.
26280         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
26281         or gensupport.h.
26282         (build/genmddeps.o): Likewise.
26283         (genprogrtl): New variable that contains everything from genprogmd
26284         except mddeps and constants.
26285         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
26286         depend on $(BUILD_MD)
26287         (genprog): New variable.  Make these programs depend on
26288         $(BUILD_ERRORS).
26289         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
26290         (main): Use read_md_files instead of init_rtx_reader_args.
26291         * genconstants.c: As for genmddeps.c.
26292         * read-md.h (read_skip_construct): Declare.
26293         * read-md.c (read_skip_construct): New function.
26294         (handle_file): Allow a null handle_directive, skipping the
26295         construct if so.
26296         (parse_include): Update the comment accordingly.
26297
26298 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26299
26300         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
26301         * genmddeps.c: Include read-md.h.
26302         (main): Call init_rtx_reader_args instead of init_md_reader_args.
26303         * genattr.c (main): Likewise.
26304         * genattrtab.c (main): Likewise.
26305         * genautomata.c (main): Likewise.
26306         * gencodes.c (main): Likewise.
26307         * genconditions.c (main): Likewise.
26308         * genconfig.c (main): Likewise.
26309         * genconstants.c (main): Likewise.
26310         * genemit.c (main): Likewise.
26311         * genextract.c (main): Likewise.
26312         * genflags.c (main): Likewise.
26313         * genopinit.c (main): Likewise.
26314         * genoutput.c (main): Likewise.
26315         * genpeep.c (main): Likewise.
26316         * genrecog.c (main): Likewise.
26317         * genpreds.c (main): Likewise.
26318         * gensupport.h (in_fname): Move to read-md.h.
26319         (init_md_reader_args_cb): Rename to...
26320         (init_rtx_reader_args_cb): ...this and return a bool.
26321         (init_md_reader_args): Rename to...
26322         (init_rtx_reader_args): ...this and return a bool.
26323         (include_callback): Move to read-md.h.
26324         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
26325         (file_name_list, first_dir_md_include): Move to read-md.c
26326         (first_bracket_include): Delete unused variable.
26327         (last_dir_md_include): Move to read-md.c.
26328         (process_include): Delete, moving code to read-md.c:handle_include.
26329         (process_rtx): Don't handle INCLUDE.
26330         (save_string): Delete.
26331         (rtx_handle_directive): New function.
26332         (init_md_reader_args_cb): Rename to...
26333         (init_rtx_reader_args_cb): ...this and return a boolean success value.
26334         Use read_md_args.
26335         (init_md_reader_args): Rename to...
26336         (init_rtx_reader_args): ...this and return a boolean success value.
26337         * rtl.def (INCLUDE): Delete.
26338         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
26339         argument.
26340         * read-rtl.c (read_conditions): Don't gobble ')' here.
26341         (read_mapping): Likewise.
26342         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
26343         Handle top-level non-rtx constructs here rather than in read_rtx_1.
26344         Store the whole queue in *X.  Remove call to init_md_reader.
26345         (read_rtx_1): Rename to...
26346         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
26347         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
26348         here.
26349         (read_nested_rtx): New function.  Handle (nil) here rather than
26350         in read_rtx_code.
26351         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
26352         gobble ')' here.
26353         * read-md.h (directive_handler_t): New type.
26354         (in_fname, include_callback): Moved from read-md.h.
26355         (read_constants, init_md_reader): Delete.
26356         (read_md_files): Declare.
26357         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
26358         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
26359         from gensupport.c.
26360         (read_constants): Rename to...
26361         (handle_constants): ...this.  Don't gobble ')' here.
26362         (handle_include, handle_file, handle_toplevel_file)
26363         (parse_include): New functions, mostly taken from gensupport.c.
26364         (init_md_reader): Subsume into...
26365         (read_md_files): ...this new function.
26366
26367 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26368
26369         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
26370         (unread_char): Decrement read_md_lineno after putting back '\n'.
26371         * read-md.c (fatal_with_file_and_line): Push back any characters
26372         that we decide not to add to the context.
26373         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
26374         fatal_expected_char in cases where '/' ends a line (for example).
26375         (read_name): Don't increment read_md_lineno here.
26376         (read_escape): Likewise.
26377         (read_quoted_string): Likewise.
26378         (read_braced_string): Likewise.
26379
26380 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26381
26382         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
26383         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
26384         * genconstants.c: Include read-md.h.
26385         * read-rtl.c (md_constants): Move to read-md.c.
26386         (md_name): Move to read-md.h.
26387         (initialize_iterators): Use leading_string_hash instead of def_hash
26388         and leading_string_eq_p instead of def_name_eq_p.
26389         (read_name): Move to read-md.c.
26390         (def_hash, def_name_eq_p): Delete.
26391         (read_constants, traverse_md_constants): Move to read-md.c.
26392         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
26393         * read-md.h: Include hashtab.h.
26394         (md_name): Moved from read-rtl.c.
26395         (md_constant): Moved from read-md.h.
26396         (leading_string_hash, leading_string_eq_p, read_name)
26397         (read_constants, traverse_md_constants): Declare.
26398         * read-md.c (md_constants): Moved from read-rtl.c.
26399         (leading_string_hash, leading_string_eq_p): New functions.
26400         (read_name, read_constants, traverse_md_constants): Moved from
26401         read-rtl.c.
26402
26403 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26404
26405         * read-rtl.c (md_name): New structure.
26406         (read_name): Take an md_name instead of a buffer pointer.
26407         Use the "string" field instead of strcpy when expanding constants.
26408         (read_constants): Remove the tmp_char argument.  Update the calls
26409         to read_name, using two local name buffers instead of the tmp_char
26410         argument.  Merge the constant-creation code.
26411         (read_conditions): Remove the tmp_char argument.  Update the calls
26412         to read_name, using a local name buffer instead of the tmp_char
26413         argument.
26414         (read_mapping): Replace tmp_char variable with a local name buffer.
26415         Update the calls to read_name.
26416         (read_rtx_1): Likewise.  Update the calls to read_constants and
26417         read_conditions.
26418
26419 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26420
26421         * Makefile.in (build/read-md.o): Depend on errors.h.
26422         * read-md.h (error_with_line): Declare.
26423         * read-md.c: Include errors.h.
26424         (message_with_line_1): New function, extracted from...
26425         (message_with_line): ...here.
26426         (error_with_line): New function.
26427         * genattrtab.c: If a call to message_with_line is followed by
26428         "have_error = 1;", replace both statements with a call to
26429         error_with_line.
26430         * genoutput.c: Likewise.
26431         * genpreds.c: Likewise.
26432         * genrecog.c: If a call to message_with_line is followed by
26433         "error_count++;", replace both statements with a call to
26434         error_with_line.
26435         (errorcount): Delete.
26436         (main): Don't check it.
26437         * gensupport.c: If a call to message_with_line is followed by
26438         "errors = 1;", replace both statements with a call to error_with_line.
26439         (errors): Delete.
26440         (process_define_cond_exec): Check have_error instead of errors.
26441         (init_md_reader_args_cb): Likewise.  Don't set errors.
26442
26443 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26444
26445         * read-md.h (read_md_file): Declare.
26446         (read_char, unread_char): New functions.
26447         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
26448         (read_quoted_string, read_string): Remove FILE * argument.
26449         * read-md.c (read_md_file): New variable.
26450         (read_md_filename, read_md_lineno): Update comments and remove
26451         unnecessary initialization.
26452         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
26453         (read_escape, read_quoted_string, read_braced_string, read_string):
26454         Remove FILE * argument.  Update calls accordingly, using read_char
26455         and unread_char instead of getc and ungetc.
26456         * rtl.h (read_rtx): Remove FILE * argument.
26457         * read-rtl.c (iterator_group): Remove FILE * argument from
26458         "find_builtin".
26459         (iterator_traverse_data): Remove "infile" field.
26460         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
26461         (add_mapping, read_name, read_constants, read_conditions)
26462         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
26463         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
26464         Remove file arguments from all calls, using read_char and unread_char
26465         instead of getc and ungetc.
26466         * gensupport.c (process_include): Preserve read_md_file around
26467         the include.  Set read_md_file to the handle of the included file.
26468         Update call to read_rtx.
26469         (init_md_reader_args_cb): Set read_md_file to the handle of the file
26470         and remove local FILE *.  Update calls to read_rtx.
26471
26472 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26473
26474         * read-md.h (read_rtx_lineno): Rename to...
26475         (read_md_lineno): ...this.
26476         (read_rtx_filename): Rename to...
26477         (read_md_filename): ...this.
26478         (copy_rtx_ptr_loc): Rename to...
26479         (copy_md_ptr_loc): ...this.
26480         (print_rtx_ptr_loc): Rename to...
26481         (print_md_ptr_loc): ...this.
26482         * read-md.c: Likewise.  Update references after renaming.
26483         (string_obstack): Replace RTL with MD in comment.
26484         (set_rtx_ptr_loc): Rename to...
26485         (set_md_ptr_loc): ...this.
26486         (get_rtx_ptr_loc): Rename to...
26487         (get_md_ptr_loc): ...this.
26488         * genconditions.c: Update references after renaming.
26489         * genemit.c: Likewise.
26490         * genoutput.c: Likewise.
26491         * genpreds.c: Likewise.
26492         * gensupport.c: Likewise.
26493         * read-rtl.c: Likewise.
26494
26495 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26496
26497         * Makefile.in (READ_MD_H): New variable.
26498         (BUILD_RTL): Add build/read-md.o.
26499         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
26500         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
26501         (build/genattrtab.o, build/genconditions.o build/genemit.o)
26502         (build/genextract.o, build/genflags.o, build/genoutput.o)
26503         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
26504         (build/read-md.o): New rule.
26505         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
26506         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
26507         * coretypes.h: ...here.
26508         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
26509         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
26510         * genattr.c: Include read-md.h.
26511         * genattrtab.c: Likewise.
26512         * genconditions.c: Likewise.
26513         * genemit.c: Likewise.
26514         * genextract.c: Likewise.
26515         * genflags.c: Likewise.
26516         * genoutput.c: Likewise.
26517         * genpreds.c: Likewise.
26518         * genrecog.c: Likewise.
26519         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
26520         (join_c_conditions, print_c_condition, read_rtx_filename)
26521         (read_rtx_lineno): Move to read-md.h.
26522         * read-rtl.c: Include read-md.h.
26523         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
26524         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
26525         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
26526         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
26527         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
26528         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
26529         (read_braced_string, read_string): Move to read-md.c.
26530         (read_rtx): Move some initialization to init_md_reader and call
26531         init_md_reader here.
26532         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
26533         Move to read-md.h.
26534         * gensupport.c: Include read-md.h.
26535         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
26536         * read-md.h, read-md.c: New files.
26537
26538 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
26539
26540         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
26541         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
26542         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
26543         * config/moxie/moxie.c (moxie_function_value): Make static.
26544         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
26545         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
26546
26547 2010-06-10  Martin Jambor  <mjambor@suse.cz>
26548
26549         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
26550         * dbgcnt.def (tree_sra): New counter.
26551         * tree-sra.c: Include dbgcnt.h.
26552         (gate_intra_sra): Check tree_sra debug counter.
26553
26554 2010-06-10  Martin Jambor  <mjambor@suse.cz>
26555
26556         PR tree-optimization/44258
26557         * tree-sra.c (build_access_subtree): Return false iff there is a
26558         partial overlap.
26559         (build_access_trees): Likewise.
26560         (analyze_all_variable_accesses): Disqualify candidates if
26561         build_access_trees returns true for them.
26562
26563 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
26564
26565         PR debug/41371
26566         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
26567         tail-recurse into canonical node.  Fast-forward over
26568         non-canonical VALUEs.
26569
26570 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
26571
26572         PR boostrap/44470
26573         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
26574         (*addsi_1_zext) <TYPE_LEA>: Likewise.
26575         (add lea splitter): Likewise.
26576         (add_zext lea splitter): Likewise.
26577
26578 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
26579
26580         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
26581
26582 2010-06-10  Jan Hubicka  <jh@suse.cz>
26583
26584         * df-problems.c (df_live_problem_data): Add live_bitmaps.
26585         (df_live_alloc): Initialize problem data and live_osbtacks.
26586         (df_live_finalize): Remove obstack, problem data; do not
26587         clear all bitmaps.
26588         (df_live_top_dump, df_live_bottom_dump): Do not dump old
26589         data when not allocated.
26590         (df_live_verify_solution_start): Do not allocate problem data.
26591         (df_live_verify_solution_end): Check if out is allocated.
26592         (struct df_md_problem_data): New structure.
26593         (df_md_alloc): Allocate problem data.
26594         (df_md_free): Free problem data; do not clear bitmaps.
26595
26596 2010-06-10  Jan Beulich  <jbeulich@novell.com>
26597
26598         PR bootstrap/37304
26599         * configure.ac: Replace $() with ${} when intending to expand
26600         variables rather than invoking commands.
26601         * configure: Re-generate.
26602
26603 2010-06-10  Jan Hubicka  <jh@suse.cz>
26604
26605         PR rtl-optimization/44460
26606         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
26607         TYPE_NEEDS_CONSTRUCTING sanity check.
26608
26609 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
26610
26611         * doc/include/fdl.texi: Move to GFDL version 1.3.
26612
26613         * doc/cpp.texi: Move to GFDL version 1.3.
26614         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
26615         * doc/gccint.texi: Move to GFDL version 1.3.
26616         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
26617         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
26618         * doc/invoke.texi: Move to GFDL version 1.3.
26619
26620 2010-06-09  Jan Hubicka  <jh@suse.cz>
26621
26622         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
26623         Break out from ...
26624         (propagate) ... here; swap the order.
26625
26626 2010-06-09  Jan Hubicka  <jh@suse.cz>
26627
26628         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
26629         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
26630         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
26631         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
26632
26633 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
26634
26635         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
26636         Do not the gather memory reference in the outer loop if the step
26637         is not a constant.
26638
26639 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
26640
26641         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
26642         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
26643         8 to 4.  Minor change of the related comments.
26644
26645 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
26646
26647         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
26648         the scev analysis when the variable is not used outside the loop
26649         in a close phi node: call compute_overall_effect_of_inner_loop.
26650
26651 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
26652
26653         * graphite-sese-to-poly.c (single_pred_cond): Renamed
26654         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
26655         (build_sese_conditions_before): Renamed call to single_pred_cond.
26656         (build_sese_conditions_after): Same.
26657
26658 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
26659
26660         * graphite-poly.h: Fix comments and indentation.
26661         * graphite-sese-to-poly.c: Same.
26662         (build_sese_conditions_before): Compute stmt and gbb only when needed.
26663         * tree-chrec.c: Fix comments and indentation.
26664         (tree-ssa-loop-niter.c): Same.
26665
26666 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
26667
26668         PR rtl-optimization/42461
26669         * dce.c (deletable_insn_p): Return true for const or pure calls again.
26670         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
26671
26672 2010-06-09  Jan Hubicka  <jh@suse.cz>
26673
26674         * bitmap.c (bitmap_and): Walk array forward.
26675         (bitmap_and_compl_into): Likewise.
26676         (bitmap_xor): Likewise.
26677         (bitmap_xor_into):  Likewise.
26678         (bitmap_equal_p): Likewise.
26679         (bitmap_intersect_p): Likewise.
26680         (bitmap_intersect_compl_p): Likewise.
26681         (bitmap_ior_and_into): Likewise.
26682         (bitmap_elt_copy): Likewise.
26683         (bitmap_and_compl): Likewise.
26684         (bitmap_elt_ior): Likewise.
26685
26686 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
26687
26688         * opts-common.c (prune_options): Ensure replacement argv array
26689         is correctly terminated by a NULL entry.
26690
26691 2010-06-09  Jan Hubicka  <jh@suse.cz>
26692
26693         * cgraph.h (varpool_first_static_initializer,
26694         varpool_next_static_initializer): Make checking only when
26695         checking enabled.
26696         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
26697         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
26698         gcc_assert to gcc_checking_assert.
26699         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
26700         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
26701         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
26702         op_iter_init_phiuse, op_iter_init_phidef,
26703         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
26704         gcc_checking_assert.
26705         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
26706         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
26707         partition_is_global, live_on_entry, live_on_exit,
26708         live_merge_and_clear): Likewise.
26709         * system.h (gcc_checking_assert): New macro.
26710         * gimple.h (set_bb_seq): Use gcc_checking_assert.
26711
26712 2010-06-09  Jason Merrill  <jason@redhat.com>
26713
26714         * Makefile.in (TAGS): Collect tags info from c-family.
26715
26716 2010-06-09  Jan Hubicka  <jh@suse.cz>
26717
26718         * gimple.h (gcc_gimple_checking_assert): New macro.
26719         (gimple_set_def_ops, gimple_set_use_ops,
26720         gimple_set_vuse, gimple_set_vdef,
26721         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
26722         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
26723         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
26724         gimple_asm_output_op, gimple_asm_output_op_ptr,
26725         gimple_asm_set_output_op, gimple_asm_clobber_op,
26726         gimple_asm_set_clobber_op, gimple_asm_label_op,
26727         gimple_asm_set_label_op, gimple_try_set_kind,
26728         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
26729         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
26730         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
26731         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
26732         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
26733         gimple_omp_for_set_initial, gimple_omp_for_final,
26734         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
26735         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
26736         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
26737         conditional with ENABLE_GIMPLE_CHECKING.
26738         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
26739
26740 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
26741
26742         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
26743         (get_computation_cost_at): Use it.
26744         (determine_use_iv_cost_condition): Likewise.
26745         (determine_iv_cost): Likewise.
26746
26747 2010-06-09  Richard Guenther  <rguenther@suse.de>
26748
26749         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
26750         replace constants.
26751
26752 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
26753
26754         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
26755
26756 2010-06-09  Martin Jambor  <mjambor@suse.cz>
26757
26758         PR tree-optimization/44423
26759         * tree-sra.c (dump_access): Dump also grp_assignment_read.
26760         (analyze_access_subtree): Pass negative allow_replacements to children
26761         if the current type is scalar.
26762
26763 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
26764
26765         PR testsuite/42843
26766         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
26767         * doc/plugins.texi (Plugin license check): Update information
26768         on type of plugin_is_GPL_compatible.
26769         * Makefile.in (PLUGINCC): Define as $(COMPILER).
26770         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
26771
26772 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
26773
26774         * config/arm/arm.c (thumb2_reorg): New function.
26775         (arm_reorg): Call it.
26776         * config/arm/thumb2.md (define_peephole2 for flag clobbering
26777         arithmetic operations): Delete.
26778
26779 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
26780
26781         PR target/44067
26782         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
26783         e500v2 target.
26784
26785 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
26786
26787         PR plugins/44459
26788         * gcc-plugin.h: Encapsulate all declarations in extern "C".
26789
26790 2010-06-08  Jan Hubicka  <jh@suse.cz>
26791
26792         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
26793         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
26794
26795 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
26796
26797         PR tree-optimization/39874
26798         PR middle-end/28685
26799         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
26800         Declare.
26801         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
26802         same_bool_result_p): New.
26803         (and_var_with_comparison, and_var_with_comparison_1,
26804         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
26805         (or_var_with_comparison, or_var_with_comparison_1,
26806         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
26807         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
26808         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
26809         of combine_comparisons.
26810         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
26811
26812 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
26813
26814         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
26815         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
26816         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
26817         pdp11_function_value_regno_p): New functions.
26818         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
26819         TARGET_FUNCTION_VALUE_REGNO_P): Define.
26820
26821 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
26822
26823         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
26824         Thumb-2 in the MINUS case.
26825
26826 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
26827
26828         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
26829
26830         * doc/gty.texi (GTY Options): Document typed GC allocation and
26831         variable_size GTY option.
26832
26833         * ggc-internal.h: New.
26834
26835         * ggc.h: Update copyright year.
26836         (digit_string): Move to stringpool.c.
26837         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
26838         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
26839         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
26840         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
26841         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
26842         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
26843         (ggc_force_collect, ggc_get_size, ggc_statistics)
26844         (ggc_print_common_statistics): Move to ggc-internal.h.
26845         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
26846         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
26847         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
26848         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
26849         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
26850         (ggc_alloc_zone_pass_stat): Remove.
26851         (ggc_internal_alloc_stat, ggc_internal_alloc)
26852         (ggc_internal_cleared_alloc_stat): New.
26853         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
26854         (ggc_internal_vec_alloc_stat)
26855         (ggc_internal_cleared_vec_alloc_stat)
26856         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
26857         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
26858         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
26859         (ggc_cleared_alloc_ptr_array_two_args): New.
26860         (htab_create_ggc, splay_tree_new_ggc): Redefine.
26861         (ggc_splay_alloc): Change the type of the first argument to
26862         enum gt_types_enum.
26863         (ggc_alloc_string): Make macro.
26864         (ggc_alloc_string_stat): New.
26865         (ggc_strdup): Redefine.
26866         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
26867         (ggc_alloc_rtvec_sized): New.
26868         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
26869         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
26870         (ggc_internal_cleared_alloc_zone_stat)
26871         (ggc_internal_zone_alloc_stat)
26872         (ggc_internal_zone_cleared_alloc_stat)
26873         (ggc_internal_zone_vec_alloc_stat)
26874         (ggc_alloc_zone_rtx_def_stat)
26875         (ggc_alloc_zone_tree_node_stat)
26876         (ggc_alloc_zone_cleared_tree_node_stat)
26877         (ggc_alloc_cleared_gimple_statement_d_stat): New.
26878
26879         * ggc-common.c: Include ggc-internal.h.
26880         (ggc_internal_cleared_alloc_stat): Rename from
26881         ggc_alloc_cleared_stat.
26882         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
26883         (ggc_calloc): Remove.
26884         (ggc_cleared_alloc_htab_ignore_args): New.
26885         (ggc_cleared_alloc_ptr_array_two_args): New.
26886         (ggc_splay_alloc): Add obj_type parameter.
26887         (init_ggc_heuristics): Formatting fixes.
26888
26889         * ggc-none.c: Update copyright year.
26890         (ggc_alloc_stat): Rename to ggc_alloc_stat.
26891         (ggc_alloc_cleared_stat): Rename to
26892         ggc_internal_cleared_alloc_stat.
26893         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
26894
26895         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
26896         Remove references to ggc_alloc in comments.
26897         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
26898         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
26899         (new_ggc_zone, destroy_ggc_zone): Remove.
26900         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
26901
26902         * ggc-zone.c: Include ggc-internal.h.  Remove references to
26903         ggc_alloc in comments.
26904         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
26905         (ggc_internal_alloc_zone_pass_stat): New.
26906         (ggc_internal_cleared_alloc_zone_stat): New.
26907         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
26908         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
26909         (new_ggc_zone, destroy_ggc_zone): Remove.
26910
26911         * stringpool.c: Update copyright year.  Include ggc-internal.h
26912         (digit_vector): Make static.
26913         (digit_string): Moved from ggc.h.
26914         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
26915         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
26916
26917         * Makefile.in (GGC_INTERNAL_H): New.
26918         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
26919         $(GGC_INTERNAL_H) to dependencies.
26920
26921         * gengtype.c: Update copyright year.
26922         (walk_type): Accept variable_size GTY option.
26923         (USED_BY_TYPED_GC_P): New macro.
26924         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
26925         whitespace at the end of strings.
26926         (get_type_specifier, variable_size_p): New functions.
26927         (alloc_quantity, alloc_zone): New enums.
26928         (write_typed_alloc_def): New function.
26929         (write_typed_struct_alloc_def): Likewise.
26930         (write_typed_typed_typedef_alloc_def): Likewise.
26931         (write_typed_alloc_defns): Likewise.
26932         (output_typename, write_splay_tree_allocator_def): Likewise.
26933         (write_splay_tree_allocators): Likewise.
26934         (main): Call write_typed_alloc_defns and
26935         write_splay_tree_allocators.
26936
26937         * lto-streamer.h (lto_file_decl_data_ptr): New.
26938
26939         * passes.c (order): Define using cgraph_node_ptr.
26940
26941         * strinpool.c (struct string_pool_data): Declare nested_ptr using
26942         ht_identifier_ptr.
26943
26944         * gimple.h (union gimple_statement_d): Likewise.
26945
26946         * rtl.h (struct rtx_def): Likewise.
26947         (struct rtvec_def): Likewise.
26948
26949         * tree.h (union tree_node): Likewise.
26950
26951         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
26952
26953         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
26954
26955         * tree-scalar-evolution.c (scev_initialize): Likewise.
26956
26957         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
26958
26959         * dwarf2asm.c (dw2_force_const_mem): Likewise.
26960
26961         * omp-low.c (lower_omp_critical): Likewise.
26962
26963         * bitmap.h (struct bitmap_head_def): Update comment to not
26964         reference ggc_alloc.
26965
26966         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
26967
26968         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
26969
26970         * ipa-prop.c (duplicate_ggc_array): Rename to
26971         duplicate_ipa_jump_func_array.  Use typed GC allocation.
26972         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
26973
26974         * gimple.c (gimple_alloc_stat): Use
26975         ggc_alloc_cleared_gimple_statement_d_stat.
26976
26977         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
26978
26979         * tree.c (make_node_stat): Use
26980         ggc_alloc_zone_cleared_tree_node_stat.
26981         (make_tree_vec_stat): Likewise.
26982         (build_vl_exp_stat): Likewise.
26983         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
26984         (make_tree_binfo_stat): Likewise.
26985         (tree_cons_stat): Likewise.
26986
26987         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
26988         (shallow_copy_rtx_stat): Likewise.
26989         (make_node_stat): Likewise.
26990
26991         * lto-symtab.c: Fix comment.
26992
26993         * tree-cfg.c (create_bb): Update comment to not reference
26994         ggc_alloc_cleared.
26995         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
26996
26997         * varpool.c (varpool_node): Use typed GC allocation.
26998         (varpool_extra_name_alias): Likewise.
26999
27000         * varasm.c (emutls_decl): Likewise.
27001         (get_unnamed_section): Likewise.
27002         (get_noswitch_section): Likewise.
27003         (get_section): Likewise.
27004         (get_block_for_section): Likewise.
27005         (build_constant_desc): Likewise.
27006         (create_constant_pool): Likewise.
27007         (force_const_mem): Likewise.
27008
27009         * tree.c (build_vl_exp_stat): Likewise.
27010         (build_real): Likewise.
27011         (build_string): Likewise.
27012         (decl_debug_expr_insert): Likewise.
27013         (decl_value_expr_insert): Likewise.
27014         (type_hash_add): Likewise.
27015         (build_omp_clause): Likewise.
27016
27017         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
27018
27019         * tree-ssa.c (init_tree_ssa): Likewise.
27020
27021         * tree-ssa-structalias.c (heapvar_insert): Likewise.
27022
27023         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
27024
27025         * tree-ssa-loop-niter.c (record_estimate): Likewise.
27026
27027         * tree-ssa-alias.c (get_ptr_info): Likewise.
27028
27029         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
27030
27031         * tree-phinodes.c (allocate_phi_node): Likewise.
27032
27033         * tree-iterator.c (tsi_link_before): Likewise.
27034         (tsi_link_after): Likewise.
27035
27036         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
27037
27038         * tree-dfa.c (create_var_ann): Likewise.
27039
27040         * tree-cfg.c (create_bb): Likewise.
27041
27042         * toplev.c (alloc_for_identifier_to_locale): Likewise.
27043         (general_init): Likewise.
27044
27045         * stringpool.c (stringpool_ggc_alloc): Likewise.
27046         (gt_pch_save_stringpool): Likewise.
27047
27048         * sese.c (if_region_set_false_region): Likewise.
27049
27050         * passes.c (do_per_function_toporder): Likewise.
27051
27052         * optabs.c (set_optab_libfunc): Likewise.
27053         (set_conv_libfunc): Likewise.
27054
27055         * lto-symtab.c (lto_symtab_register_decl): Likewise.
27056
27057         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
27058         (input_eh_region): Likewise.
27059         (input_eh_lp): Likewise.
27060         (make_new_block): Likewise.
27061         (unpack_ts_real_cst_value_fields): Likewise.
27062
27063         * lto-section-in.c (lto_new_in_decl_state): Likewise.
27064
27065         * lto-cgraph.c (input_node_opt_summary): Likewise.
27066
27067         * loop-init.c (loop_optimizer_init): Likewise.
27068
27069         * lambda.h (lambda_vector_new): Likewise.
27070
27071         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
27072
27073         * ira.c (update_equiv_regs): Likewise.
27074
27075         * ipa.c (cgraph_node_set_new): Likewise.
27076         (cgraph_node_set_add): Likewise.
27077         (varpool_node_set_new): Likewise.
27078         (varpool_node_set_add): Likewise.
27079
27080         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
27081         (duplicate_ipa_jump_func_array): Likewise.
27082         (ipa_read_node_info): Likewise.
27083
27084         * ipa-cp.c (ipcp_create_replace_map): Likewise.
27085
27086         * integrate.c (get_hard_reg_initial_val): Likewise.
27087
27088         * gimple.c (gimple_alloc_stat): Likewise.
27089         (gimple_build_omp_for): Likewise.
27090         (gimple_seq_alloc): Likewise.
27091         (gimple_copy): Likewise.
27092
27093         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
27094         (gsi_insert_after_without_update): Likewise.
27095
27096         * function.c (add_frame_space): Likewise.
27097         (insert_temp_slot_address): Likewise.
27098         (assign_stack_temp_for_type): Likewise.
27099         (allocate_struct_function): Likewise.
27100         (types_used_by_var_decl_insert): Likewise.
27101
27102         * except.c (init_eh_for_function): Likewise.
27103         (gen_eh_region): Likewise.
27104         (gen_eh_region_catch): Likewise.
27105         (gen_eh_landing_pad): Likewise.
27106         (add_call_site): Likewise.
27107
27108         * emit-rtl.c (get_mem_attrs): Likewise.
27109         (get_reg_attrs): Likewise.
27110         (start_sequence): Likewise.
27111         (init_emit): Likewise.
27112
27113         * dwarf2out.c (new_cfi): Likewise.
27114         (queue_reg_save): Likewise.
27115         (dwarf2out_frame_init): Likewise.
27116         (new_loc_descr): Likewise.
27117         (find_AT_string): Likewise.
27118         (new_die): Likewise.
27119         (add_var_loc_to_decl): Likewise.
27120         (clone_die): Likewise.
27121         (clone_as_declaration): Likewise.
27122         (break_out_comdat_types): Likewise.
27123         (new_loc_list): Likewise.
27124         (loc_descriptor): Likewise.
27125         (add_loc_descr_to_each): Likewise.
27126         (add_const_value_attribute): Likewise.
27127         (tree_add_const_value_attribute): Likewise.
27128         (add_comp_dir_attribute): Likewise.
27129         (add_name_and_src_coords_attributes): Likewise.
27130         (lookup_filename): Likewise.
27131         (store_vcall_insn): Likewise.
27132         (dwarf2out_init): Likewise.
27133
27134         * dbxout.c (dbxout_init): Likewise.
27135
27136         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
27137
27138         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
27139
27140         * config/score/score7.c (score7_output_external): Likewise.
27141
27142         * config/score/score3.c (score3_output_external): Likewise.
27143
27144         * config/s390/s390.c (s390_init_machine_status): Likewise.
27145
27146         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
27147         (rs6000_init_machine_status): Likewise.
27148         (output_toc): Likewise.
27149
27150         * config/pa/pa.c (pa_init_machine_status): Likewise.
27151         (get_deferred_plabel): Likewise.
27152
27153         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
27154
27155         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
27156
27157         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
27158
27159         * config/mep/mep.c (mep_init_machine_status): Likewise.
27160         (mep_note_pragma_flag): Likewise.
27161
27162         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
27163
27164         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
27165
27166         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
27167
27168         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
27169         (i386_pe_maybe_record_exported_symbol): Likewise.
27170
27171         * config/i386/i386.c (get_dllimport_decl): Likewise.
27172         (ix86_init_machine_status): Likewise.
27173         (assign_386_stack_local): Likewise.
27174
27175         * config/frv/frv.c (frv_init_machine_status): Likewise.
27176
27177         * config/darwin.c (machopic_indirection_name): Likewise.
27178
27179         * config/cris/cris.c (cris_init_machine_status): Likewise.
27180
27181         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
27182
27183         * config/avr/avr.c (avr_init_machine_status): Likewise.
27184
27185         * config/arm/arm.c (arm_init_machine_status): Likewise.
27186
27187         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
27188         (alpha_need_linkage): Likewise.
27189         (alpha_use_linkage): Likewise.
27190
27191         * cgraph.c (cgraph_allocate_node): Likewise.
27192         (cgraph_create_edge_1): Likewise.
27193         (cgraph_create_indirect_edge): Likewise.
27194         (cgraph_add_asm_node): Likewise.
27195
27196         * cfgrtl.c (init_rtl_bb_info): Likewise.
27197
27198         * cfgloop.c (alloc_loop): Likewise.
27199         (rescan_loop_exit): Likewise.
27200
27201         * cfg.c (init_flow): Likewise.
27202         (alloc_block): Likewise.
27203         (unchecked_make_edge): Likewise.
27204
27205         * c-parser.c (c_parse_init): Likewise.
27206         (c_parse_file): Likewise.
27207
27208         * c-decl.c (bind): Likewise.
27209         (record_inline_static): Likewise.
27210         (push_scope): Likewise.
27211         (make_label): Likewise.
27212         (lookup_label_for_goto): Likewise.
27213         (finish_struct): Likewise.
27214         (finish_enum): Likewise.
27215         (c_push_function_context): Likewise.
27216
27217         * bitmap.c (bitmap_element_allocate): Likewise.
27218         (bitmap_gc_alloc_stat): Likewise.
27219
27220         * alias.c (record_alias_subset): Likewise.
27221         (init_alias_analysis): Likewise.
27222
27223 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
27224
27225         * fold-const.c (fold_comparison): Remove redundant parenthesis.
27226         * tree-inline.c (expand_call_inline): Pass translated return value of
27227         cgraph_inline_failed_string to diagnostic function.
27228
27229 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
27230             Shujing Zhao  <pearly.zhao@oracle.com>
27231
27232         PR c/37724
27233         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
27234         implicit bad conversions is initialization.
27235         (error_init): Use gmsgid instead of msgid for argument name and change
27236         the call for error.
27237         (pedwarn_init): Use gmsgid instead of msgid for argument name and
27238         change the call for pedwarn.
27239         (warning_init): Use gmsgid instead of msgid for argument name and
27240         change the call for warning.
27241
27242 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
27243
27244         * config/mips/mips-protos.h (mips_print_operand): Delete.
27245         (mips_print_operand_address): Delete.
27246         * config/mips/mips.h (mips_print_operand_punct): Delete.
27247         (PRINT_OPERAND): Delete.
27248         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
27249         (PRINT_OPERAND_ADDRESS): Delete.
27250         * config/mips/mips.c (mips_print_operand_punct): Make static.
27251         (mips_print_operand_address): Make static.
27252         (mips_print_operand): Make static.  Call
27253         mips_print_operand_punct_valid_p.
27254         (mips_print_operand_punct_valid_p): New function.
27255         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
27256         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
27257
27258 2010-06-07  Jan Hubicka  <jh@suse.cz>
27259
27260         PR middle-end/44454
27261         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
27262         are allocated.
27263
27264 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
27265
27266         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
27267         name of RECORD.
27268
27269 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27270
27271         * doc/sourcebuild.texi (Effective-Target Keywords, Other
27272         attributes): Document gas.
27273
27274 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
27275
27276         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
27277         <TYPE_LEA>: Split instruction.
27278         <default>: Remove alternative 2 handling.
27279         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
27280         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
27281         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
27282
27283         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
27284         (ashift_zext lea splitter): Use DImode for multiplication.
27285
27286         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
27287         to generate addition.
27288
27289 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
27290
27291         * common.opt (fira-verbose): Use Var.
27292         (fpcc-struct-return): Use Init instead of VarExists.
27293         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
27294         toplev.c.
27295         * flags.h (flag_signed_char, flag_short_enums,
27296         flag_pcc_struct_return, flag_ira_verbose,
27297         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
27298         * toplev.c (flag_detailed_statistics, flag_signed_char,
27299         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
27300         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
27301         * toplev.h (flag_crossjumping, flag_if_conversion,
27302         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
27303         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
27304         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
27305         flag_cprop_registers, time_report, flag_ira_loop_pressure,
27306         flag_ira_coalesce, flag_ira_move_spills,
27307         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
27308
27309 2010-06-07  Jan Hubicka  <jh@suse.cz>
27310
27311         * df-core.c (df_analyze_problem): Do verification after allocation.
27312
27313         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
27314         (df_lr_alloc): Initialize problem data; move bitmaps to
27315         lr_bitmaps obstack.
27316         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
27317         (df_lr_verify_solution_start): Do not initialize problem data;
27318         allocate bitmaps in lr_bitmaps.
27319         (df_lr_verify_solution_end): Do not free problem data.
27320
27321 2010-06-07  Jan Hubicka  <jh@suse.cz>
27322
27323         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
27324         if caller is noreturn.
27325         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
27326         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
27327         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
27328         * ipa-pure-const.c (check_decl): Add IPA parameter.
27329         (state_from_flags): New function.
27330         (better_state, worse_state): New functions.
27331         (check_call): When in IPA mode, do not care about callees.
27332         (check_load, check_store): Update.
27333         (check_ipa_load, check_ipa_store): New.
27334         (check_stmt): When in IPA mode, use IPA checkers.
27335         (analyze_function): Use state_from_flags.
27336         (propagate): Check indirect edges and references.
27337
27338 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
27339
27340         PR rtl-optimization/44404
27341         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
27342         of count_occurrences to see if it's safe to modify mem_insn.
27343
27344 2010-06-07  Richard Guenther  <rguenther@suse.de>
27345
27346         * gimplify.c (gimplify_cleanup_point_expr): For empty body
27347         and EH-only cleanup drop the cleanup instead of inserting it
27348         unconditionally.
27349
27350 2010-06-07  Ira Rosen  <irar@il.ibm.com>
27351
27352         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
27353         documentation.
27354         * targhooks.c (default_builtin_vectorization_cost): New function.
27355         * targhooks.h (default_builtin_vectorization_cost): Declare.
27356         * target.h (enum vect_cost_for_stmt): Define.
27357         (builtin_vectorization_cost): Change argument and comment.
27358         * tree-vectorizer.h: Remove cost model macros.
27359         * tree-vect-loop.c: Include target.h.
27360         (vect_get_cost): New function.
27361         (vect_estimate_min_profitable_iters): Replace cost model macros with
27362         calls to vect_get_cost.
27363         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
27364         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
27365         default implementation.
27366         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
27367         calls to target hook builtin_vectorization_cost.
27368         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
27369         Likewise.
27370         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
27371         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
27372         implementation to return costs.
27373         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
27374         * config/spu/spu.h: Remove vectorizer cost model macros.
27375         * config/i386/i386.h: Likewise.
27376         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
27377         a call to target hook builtin_vectorization_cost.
27378
27379 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
27380
27381         PR target/44319
27382         * config/i386/i386.c (override_options): Turn zee pass on for level 2
27383         and above and defer till target is known.
27384         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
27385         turn off otherwise.
27386
27387 2010-05-25  Jan Hubicka  <jh@suse.cz>
27388
27389         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
27390         (df_compact_blocks): Likewise.
27391         * df.h (struct df): Turn hardware_regs_used,
27392         regular_block_artificial_uses, eh_block_artificial_uses,
27393         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
27394         bitmap_head.
27395         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
27396         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
27397         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
27398         df_scan_blocks, df_insn_delete, df_insn_rescan,
27399         df_insn_rescan_debug_internal, df_insn_rescan_all,
27400         df_process_deferred_rescans, df_process_deferred_rescans,
27401         df_notes_rescan, df_get_call_refs, df_get_call_refs,
27402         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
27403         df_record_entry_block_defs, df_record_exit_block_uses,
27404         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
27405         df_scan_verify): Update.
27406
27407 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
27408
27409         PR c++/44188
27410         * c-common.c (is_typedef_decl): Move this definition ...
27411         * tree.c (is_typedef_decl): ... here.
27412         (typdef_variant_p): Move definition here from cp/tree.c.
27413         * c-common.h (is_typedef_decl): Move this declaration ...
27414         * tree.h (is_typedef_decl): ... here.
27415         (typedef_variant_p): Move declaration here from cp/cp-tree.h
27416         * dwarf2out.c (is_naming_typedef_decl): New function.
27417         (gen_tagged_type_die): Split out of ...
27418         (gen_type_die_with_usage): ... this function. When an anonymous
27419         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
27420         is emitted for the typedef.
27421         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
27422         anonymous tagged types.
27423
27424 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27425
27426         PR c/20000
27427         * c-decl.c (grokdeclarator): Delete warning.
27428
27429 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
27430
27431         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
27432         newly built CALL_EXPR.
27433         * tree-profile.c (tree_profiling): Don't profile functions produced
27434         for built-in stuff.
27435
27436 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
27437
27438         PR bootstrap/44427
27439         PR bootstrap/44428
27440         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
27441         endianness-independent.
27442
27443 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
27444
27445         * c-common.c: Move to c-family/.
27446         * c-common.def: Likewise.
27447         * c-common.h: Likewise.
27448         * c-cppbuiltin.c: Likewise.
27449         * c-dump.c: Likewise.
27450         * c-format.c: Likewise.
27451         * c-format.h : Likewise.
27452         * c-gimplify.c: Likewise.
27453         * c-lex.c: Likewise.
27454         * c-omp.c: Likewise.
27455         * c.opt: Likewise.
27456         * c-opts.c: Likewise.
27457         * c-pch.c: Likewise.
27458         * c-ppoutput.c: Likewise.
27459         * c-pragma.c: Likewise.
27460         * c-pragma.h: Likewise.
27461         * c-pretty-print.c: Likewise.
27462         * c-pretty-print.h: Likewise.
27463         * c-semantics.c: Likewise.
27464         * stub-objc.c: Likewise.
27465
27466         * gengtype.c (get_file_langdir): Special-case files in c-family/.
27467         (get_output_file_with_visibility): Fix name for c-common.h.
27468         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
27469
27470         * c-tree.h: Update include path for moved files.
27471         * c-lang.c: Likewise.
27472         * c-lang.h: Likewise.
27473         * c-parser.c: Likewise.
27474         * c-convert.c: Likewise.
27475         * c-decl.c: Likewise.
27476         * c-objc-common.c: Likewise.
27477         * configure.ac: Make sure c-family/ exists in the build directory.
27478         * configure: Regenerate.
27479         * Makefile.in: Update paths for moved files.  Regroup files per
27480         location and update dependencies.  Move generated_files down after
27481         ALL_GTFILES_H.
27482
27483         * config/spu/spu-c.c: Update paths for moved files.
27484         * config/mep/mep-pragma.c: Likewise.
27485         * config/darwin-c.c: Likewise.
27486         * config/i386/msformat-c.c: Likewise.
27487         * config/i386/i386-c.c: Likewise.
27488         * config/avr/avr-c.c: Likewise.
27489         * config/sol2-c.c: Likewise.
27490         * config/ia64/ia64-c.c: Likewise.
27491         * config/rs6000/rs6000-c.c: Likewise.
27492         * config/arm/arm.c: Likewise.
27493         * config/arm/arm-c.c: Likewise.
27494         * config/h8300/h8300.c: Likewise.
27495         * config/v850/v850-c.c: Likewise.
27496
27497         * config/t-darwin: Fix dependencies for moved files.
27498         * config/t-sol2: Fix dependencies for moved files.
27499         * config/mep/t-mep: Fix dependencies for moved files.
27500         * config/ia64/t-ia64: Fix dependencies for moved files.
27501         * config/rs6000/t-rs6000: Fix dependencies for moved files.
27502         * config/v850/t-v850: Fix dependencies for moved files.
27503         * config/v850/t-v850e: Fix dependencies for moved files.
27504
27505         * config/m32c/m32c-pragma.c
27506
27507         * po/exgettext: Look in c-family/ also.
27508
27509 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
27510
27511         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
27512         (mark_control_dependent_edges_necessary): Call it instead of marking
27513         the last statement manually.
27514         (propagate_necessity): Likewise.
27515
27516 2010-06-05  Jan Hubicka  <jh@suse.cz>
27517
27518         * basic-block.h (compute_dominance_frontiers): Updated.
27519         (compute_idf): Likewise.
27520
27521         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
27522         for dominance frontiers.
27523         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
27524         (insert_updated_phi_nodes_for): Likewise.
27525         (update_ssa): Likewise.
27526         * cfganal.c (compute_dominance_frontiers_1): Likewise.
27527         (compute_dominance_frontiers): Likewise.
27528         (compute_idf): Likewise.
27529         * df-problems.c (df_md_local_compute): Likewise.
27530
27531 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
27532
27533         * target.h (struct gcc_target): Add memory_move_cost field.
27534         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
27535         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
27536         * targhooks.c (default_memory_move_cost): New function.
27537         * targhooks.h (default_memory_move_cost): Declare function.
27538         * reload.h (memory_move_cost): Declare.
27539         (memory_move_secondary_cost): Change type of 'in' argument to bool.
27540         * reginfo.c (memory_move_cost): New function.
27541         (memory_move_secondary_cost): Change type of 'in' argument to bool.
27542         * ira.h (ira_memory_move_cost): Update comment.
27543         * ira.c (ira_memory_move_cost): Update comment.
27544         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
27545         with memory_move_cost.
27546         * postreload.c (reload_cse_simplify_set): (Ditto.).
27547         * reload1.c (choose_reload_regs): (Ditto.).
27548         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
27549         (MEMORY_MOVE_COST):  Revise documentation.
27550
27551         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
27552         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
27553         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
27554         type of 'in' argument to bool.
27555         (TARGET_MEMORY_MOVE_COST): Define.
27556
27557 2010-06-05  Jan Hubicka  <jh@suse.cz>
27558
27559         * ipa-pure-const.c (propagate): Fix typo in handling of functions
27560         that cannot return.  Be more careful when merging the results with
27561         previously known ones.
27562
27563 2010-06-05  Matthias Klose  <doko@ubuntu.com>
27564
27565         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
27566         function to add the -iplugindir option.
27567         (find_plugindir_spec_function): Add new declaration and function.
27568         (static_spec_func): Use it for "find-plugindir".
27569
27570 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
27571
27572         PR c++/44361
27573         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
27574         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
27575         statement expression.
27576
27577 2010-06-05  Jan Hubicka  <jh@suse.cz>
27578
27579         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
27580         (df_rd_problem_data): Convert sparse_invalidated_by_call,
27581         dense_invalidated_by_call to bitmap head.
27582         (df_rd_alloc, df_rd_bb_local_compute_process_def,
27583         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
27584         df_rd_start_dump, df_lr_verify_transfer_functions,
27585         df_live_verify_transfer_functions, df_chain_create_bb,
27586         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
27587         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
27588         df_simulate_one_insn_forwards, df_md_alloc,
27589         df_md_bb_local_compute_process_def,
27590         df_md_bb_local_compute_process_def, df_md_local_compute,
27591         df_md_transfer_function df_md_free): Update.
27592
27593 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
27594
27595         PR c/44322
27596         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
27597         target type for ADDR_EXPR; require no changes to qualifiers except
27598         for function types.
27599         * c-tree.h (c_build_type_variant): Remove.
27600
27601 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
27602
27603         * genautomata.c (get_excl_set): Do work per element, not per char.
27604         (check_presence_pattern_sets): Similar.
27605         (check_absence_pattern_sets): Similar.
27606
27607 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
27608
27609         * genautomata.c (curr_state_pass_num): Delete.
27610         (min_issue_delay_pass_states): Delete.
27611         (min_issue_delay): Delete.
27612         (initiate_min_issue_delay_pass_states): Delete.
27613         (output_min_issue_delay_table): Compute min_issue_delay_vect
27614         using a breadth-first search variant.
27615         (output_tables): Don't call initiate_min_issue_delay_pass_states.
27616
27617 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
27618
27619         PR boostrap/44421
27620         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
27621         (df_byte_lr_bb_local_compute): Likewise.
27622
27623 2010-06-03  Jason Merrill  <jason@redhat.com>
27624
27625         Implement noexcept operator (5.3.7)
27626         * c-common.c (c_common_reswords): Add noexcept.
27627         * c-common.h (enum rid): Add RID_NOEXCEPT.
27628
27629 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
27630
27631         * config/darwin-driver.c (darwin_default_min_version): Use
27632         GCC-specific formats in diagnostics.
27633         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
27634         diagnostics.
27635         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
27636         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
27637         eval_spec_function, handle_braces, process_brace_body, main,
27638         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
27639         getenv_spec_function, compare_version_strings,
27640         version_compare_spec_function): Use GCC-specific formats in
27641         diagnostics.
27642
27643 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
27644
27645         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
27646         that operand 0 and operand 1 are equal.
27647         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
27648         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
27649         and operand 1 are equal.
27650         <default>: Ditto.  Remove ??? comment.
27651         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
27652         and operand 1 are equal.
27653         <default>: Ditto.  Remove ??? comment.
27654         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
27655         are equal.
27656         (*add<mode>_4) <default>: Ditto.
27657         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
27658
27659 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
27660
27661         * config/i386/i386-protos.h (ix86_print_operand): Declare.
27662         * config/i386/i386.c (ix86_print_operand): Make non-static.
27663         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
27664         * output.h (output_operand): Declare.
27665         * final.c (output_operand): Make non-static.
27666
27667 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
27668
27669         PR rtl-optimization/44013
27670         * sched-deps.c (add_dependence_list_and_free): Don't free lists
27671         when processing debug insns.
27672
27673         PR debug/41371
27674         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
27675         recursing.  Check that recursion is bounded.  Rename inner var
27676         to avoid hiding incoming argument.
27677
27678 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
27679
27680         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
27681         operands[2] == 255.
27682         (*addqi_3): Ditto.
27683         (*addqi_4): Ditto.
27684         (*addqi_5): Ditto.
27685         (*addqi_ext_1_rex64): Ditto.
27686         (*addqi_ext_1): Ditto.
27687
27688         (*addqi_4): Check for incdec_operand in QImode.
27689
27690         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
27691         using SWI mode iterator.
27692         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
27693         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
27694         mode iterator.
27695         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
27696         using SWI mode iterator.
27697
27698 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27699
27700         PR c/25880
27701         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
27702         * c-format.c (gcc_diag_flag_specs): Add hash.
27703         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
27704         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
27705         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
27706         pp_c_cv_qualifiers. Handle qualifiers spelling here.
27707         (pp_c_type_qualifier_list): Call the function above.
27708         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
27709         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
27710         (WARN_FOR_QUALIFIERS): New macro.
27711         (convert_for_assignment): Use it.
27712
27713 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
27714
27715         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
27716
27717 2010-06-04  Jan Hubicka  <jh@suse.cz>
27718
27719         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
27720         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
27721         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
27722         DF_BYTE_LR_OUT): Update for embedded bitmaps.
27723         * fwprop.c (single_def_use_enter_block): Likewise.
27724         * ddg.c (create_ddg_dep_from_intra_loop_link,
27725         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
27726         * loop-iv.c (latch_dominating_def): Likewise.
27727         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
27728         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
27729         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
27730         df_rd_transfer_function, df_rd_top_dump,
27731         df_rd_bottom_dump): Update.
27732         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
27733         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
27734         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
27735         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
27736         df_lr_verify_solution_start, df_lr_verify_solution_end,
27737         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
27738         df_live_free_bb_info, df_live_alloc, df_live_reset,
27739         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
27740         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
27741         df_live_verify_solution_start, df_live_verify_solution_end,
27742         df_live_verify_transfer_functions, df_chain_create_bb,
27743         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
27744         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
27745         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
27746         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
27747         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
27748         df_byte_lr_transfer_function, df_byte_lr_top_dump,
27749         df_byte_lr_bottom_dump, df_create_unused_note,
27750         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
27751         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
27752         df_md_transfer_function, df_md_init, df_md_confluence_0,
27753         df_md_confluence_n,
27754         df_md_top_dump, df_md_bottom_dump): Update.
27755         (struct df_lr_problem_data): Embedd bitmap headers.
27756
27757 2010-06-04  Jan Hubicka  <jh@suse.cz>
27758
27759         * dce.c (dce_process_block): Do not re-scan already marked
27760         instructions.
27761
27762 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
27763
27764         PR rtl-optimization/39871
27765         PR rtl-optimization/40615
27766         PR rtl-optimization/42500
27767         PR rtl-optimization/42502
27768         * ira.c (init_reg_equiv_memory_loc: New function.
27769         (ira): Call it twice.
27770         * reload.h (calculate_elim_costs_all_insns): Declare.
27771         * ira-costs.c: Include "reload.h".
27772         (regno_equiv_gains): New static variable.
27773         (init_costs): Allocate it.
27774         (finish_costs): Free it.
27775         (ira_costs): Call calculate_elim_costs_all_insns.
27776         (find_costs_and_classes): Take estimated elimination costs
27777         into account.
27778         (ira_adjust_equiv_reg_cost): New function.
27779         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
27780         * reload1.c (init_eliminable_invariants, free_reg_equiv,
27781         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
27782         (elim_bb): New static variable.
27783         (reload): Move code out of here into init_eliminable_invariants and
27784         free_reg_equiv.  Call them.
27785         (calculate_elim_costs_all_insns): New function.
27786         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
27787         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
27788         but call note_reg_elim_costly if we turned a valid memory address
27789         into an invalid one.
27790         * Makefile.in (ira-costs.o): Depend on reload.h.
27791
27792 2010-06-04  Julian Brown  <julian@codesourcery.com>
27793
27794         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
27795         for pool ranges.
27796
27797 2010-06-04  Richard Guenther  <rguenther@suse.de>
27798
27799         PR lto/41584
27800         * cgraph.h (struct varpool_node): Add lto_file_data field.
27801         * lto-cgraph.c (input_varpool_node): Initialize it.
27802
27803 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
27804
27805         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
27806         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
27807         predicate in "type" attribute calculation.
27808         (*addsi_1_zext): Ditto.
27809         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
27810         (*addsi_2_zext): Ditto.
27811         (*add<mode>_3): Ditto.
27812         (*addsi_3_zext): Ditto.
27813         (*add<mode>_5): Ditto.
27814
27815 2010-06-03  Jan Hubicka  <jh@suse.cz>
27816
27817         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
27818         of bitmap_bit_p.
27819         * cfganal.c (compute_dominance_frontiers_1): Likewise.
27820
27821 2010-06-03  Jan Hubicka  <jh@suse.cz>
27822
27823         * df-problems.c (df_create_unused_note, df_note_bb_compute):
27824         micro-optimize the checks when to add new note.
27825
27826 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
27827
27828         * final.c (output_asm_insn): Call
27829         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
27830         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
27831         (output_address): Call targetm.asm_out.print_operand_address.
27832         Update comments.
27833         * target.h (struct gcc_target): Add print_operand,
27834         print_operand_address, and print_operand_punct_valid_p fields.
27835         * targhooks.h (default_print_operand): Declare.
27836         (default_print_operand_address): Declare.
27837         (default_print_operand_punct_valid_p): Declare.
27838         * targhooks.c (default_print_operand): Define.
27839         (default_print_operand_address): Define.
27840         (default_print_operand_punct_valid_p): Define.
27841         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
27842         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
27843         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
27844         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
27845         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
27846         * vmsdbgout.c (addr_const_to_string): Update comment.
27847         * config/i386/i386.c (print_operand): Rename to...
27848         (ix86_print_operand): ...this.  Make static.
27849         (print_operand_address): Rename to...
27850         (ix86_print_operand_address): ...this.  Make static.  Call
27851         ix86_print_operand instead of PRINT_OPERAND.
27852         (ix86_print_operand_punct_valid_p): New function.
27853         (TARGET_PRINT_OPERAND): Define.
27854         (TARGET_PRINT_OPERAND_ADDRESS): Define.
27855         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
27856         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
27857         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
27858         (PRINT_OPERAND): Delete.
27859         (PRINT_OPERAND_ADDRESS): Delete.
27860         * config/i386/i386-protos.h (print_operand): Delete prototype.
27861         (print_operand_address): Delete prototype.
27862
27863 2010-06-03  Richard Guenther  <rguenther@suse.de>
27864
27865         PR tree-optimization/44403
27866         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
27867         Preserve pointer qualifiers.
27868         (vect_create_data_ref_ptr): Likewise.
27869
27870 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
27871
27872         PR c++/44294
27873         * defaults.h (MAX_FIXED_MODE_SIZE): New.
27874
27875         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
27876
27877 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
27878
27879         PR debug/44375
27880         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
27881         return false if merging the bbs would lead to goto_locus
27882         location being lost from the IL.
27883
27884 2010-06-03  Jan Hubicka  <jh@suse.cz>
27885             Jakub Jelinek  <jakub@redhat.com>
27886
27887         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
27888         set->regs[i] is NULL or has just one entry.
27889
27890 2010-06-03  Jan Hubicka  <jh@suse.cz>
27891
27892         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
27893         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
27894
27895 2010-06-03  Paul Brook  <paul@codesourcery.com>
27896
27897         * config/arm/arm.c (FL_TUNE): Define.
27898         (arm_default_cpu, arm_cpu_select): Remove.
27899         (all_cores): Populate core field.
27900         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
27901         (arm_find_cpu): New function.
27902         (arm_handle_option): Lookup cpu/architecture names.
27903         (arm_override_options): Cleanup mcpu/march/mtune handling.
27904         (arm_file_start): Ditto.
27905
27906 2010-06-03  Alan Modra  <amodra@gmail.com>
27907
27908         PR target/44169
27909         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
27910         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
27911         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
27912         (rs6000_emit_load_toc_table): Likewise.
27913
27914 2010-06-02  Jan Hubicka  <jh@suse.cz>
27915
27916         * passes.c (init_optimization_passes): Put ipa reference
27917         after ipa pure-const.
27918
27919 2010-06-02  Jan Hubicka  <jh@suse.cz>
27920
27921         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
27922         calls_read_all and calls_write_all.
27923         (get_reference_optimization_summary): Fix formatting.
27924         (is_proper_for_analysis): Check that decl is not readonly.
27925         (propagate_bits): Check CONST/PURE/noreturn flags.
27926         (ipa_init): Move all_module_statics to optimization_summary_obstack.
27927         (analyze_function): Ignore indirect edges.
27928         (copy_global_bitmap): For all module statics, do nothing.
27929         (generate_summary): Do not print calls_read_all/calls_write_all.
27930         (read_write_all_from_decl): Take node as argument; check
27931         cgraph_node_cannot_return.
27932         (propagate): Reorganize read_all/write_all computation;
27933         check indirect edges; check ecf flags; use all_module_statics
27934         in the results; do not free all_module_statics.
27935         (stream_out_bitmap): Handle all_module_statics.
27936         (ipa_reference_write_optimization_summary): Likewise; use
27937         varpool/cgraph encoders to get boundaries.
27938         (ipa_reference_read_optimization_summary): Read in all_module_statics;
27939         use it when possible.
27940
27941 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
27942
27943         PR target/44218
27944         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
27945         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
27946
27947         * doc/extend.texi (powerpc builtins): Document vec_recip,
27948         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
27949
27950         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
27951         (rs6000_emit_swrsqrt): Ditto.
27952         (rs6000_emit_swdivsf): Delete.
27953         (rs6000_emit_swdivdf): Ditto.
27954         (rs6000_emit_swrsqrtsf): Ditto.
27955
27956         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
27957         describe the reciprocal estimate support for each type.
27958         (recip_options): Map -mrecip=<opt> into option bits.
27959         (gen_2arg_fn_t): New typedef for binary rtx gen function.
27960         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
27961         reciprocal estimate instructions.
27962         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
27963         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
27964         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
27965         cost information if -mdebug=cost or -mdebug=reg.
27966         (rs6000_override_options): Set -mrecip-precision for power6, and
27967         power7 machines.  If -mvsx or -mdfp, enable various options that
27968         came in previous instruction set ISAs, unless the option was
27969         explicitly disabled by the command line option.  Parse
27970         -mrecip=<opt> options.
27971         (rs6000_builtin_vectorized_function): Add support for vectorizing
27972         the reciprocal estimate builtins and expansions.
27973         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
27974         (bdesc_2arg): Add reciprocal estimate builtins.
27975         (bdesc_1arg): Add reciprocal square root estimate builtins.
27976         (rs6000_expand_builtin): Rewrite to use a switch statement,
27977         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
27978         (rs6000_init_builtins): Create declarations for reciprocal
27979         estimate builtins.
27980         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
27981         sized, prefer traditional floating point registers, if integer
27982         vector types, prefer altivec registers.  Don't actually look at
27983         the memory address any more.
27984         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
27985         builtins.
27986         (rs6000_load_constant_and_splat): New helper function to load up
27987         the constant for reciprocal estimate instructions.
27988         (rs6000_emit_madd): New helper function for generating
27989         multiply/add type instructions, based on the current switches.
27990         (rs6000_emit_msub): Ditto.
27991         (rs6000_emit_mnsub): Ditto.
27992         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
27993         replace a divide with a reciprocal estimate and fixup, adding
27994         support for machines with high precision and vectors.
27995         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
27996         low precision machines.
27997         (rs6000_emit_swdiv): New common function to be called to replace a
27998         division with reciprocal estimate and fixup.
27999         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
28000         for double and vector types.  Add support for high precision machines.
28001
28002         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
28003         the reciprocal estimate instructions can be generated.
28004         (TARGET_FRE): Ditto.
28005         (TARGET_FRSQRTES): Ditto.
28006         (TARGET_FRSQRTE): Ditto.
28007         (RS6000_RECIP_*): New macros for reciprocal estimate support.
28008
28009         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
28010         square root estimate on vectors.
28011         (re<mode>2): New insn for reciprocal division estimate on vectors.
28012
28013         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
28014         New builtin.
28015         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
28016         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
28017         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
28018         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
28019         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
28020         (RS6000_BUILTIN_RSQRT): Ditto.
28021         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
28022         floating point builtin.
28023
28024         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
28025         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
28026         __RECIP_PRECISION__ based on the command line switches.
28027         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
28028
28029         * config/rs6000/rs6000.opt (-mrecip): Document add support for
28030         replacing division instructions with reciprocal estimate and fixup.
28031         (-mrecip=<opt>): New option.
28032         (-mrecip-precision): Ditto.
28033
28034         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
28035         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
28036         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
28037         precision scalar.
28038
28039         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
28040         (UNSPEC_VREFP): Ditto.
28041         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
28042         conterparts with regard to support of -mno-fused-madd and -ffast-math.
28043         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
28044         reciprocal estimate instructions to be generated.
28045         (altivec_vrefp): Ditto.
28046
28047         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
28048         estimate support.
28049         (rreg): New mode attribute for reciprocal estimate support.
28050         (recip<mode>3): New insn for division using reciprocal estimate
28051         and fixup builtins.
28052         (divide define_split): New define_split to convert floating point
28053         division to use reciprocal estimate if the user used the
28054         appropriate options and the split is run when we can add new
28055         pseudo registers for the fixup.
28056         (rsqrt<mode>2): New insn for reciprocal square root support.
28057         (recipsf3): Move into recip<mode>3.
28058         (recipdf3): Ditto.
28059         (fres): Use TARGET_FRES.
28060         (rsqrtsf2): Move into rsqrt<mode>2.
28061         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
28062         (copysignsf3): Add support for VSX.
28063         (fred): Use TARGET_FRE.
28064         (fred_fpr): Ditto.
28065         (rsqrtdf_internal1): New function for frsqrte instruciton.
28066
28067         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
28068         (vec_rsqrt): Ditto.
28069
28070 2010-06-03  Richard Guenther  <rguenther@suse.de>
28071
28072         PR middle-end/44291
28073         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
28074         (set_user_assembler_libfunc): Likewise.
28075
28076 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
28077
28078         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
28079         defaults.h.
28080         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
28081         to defaults.h
28082         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
28083         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
28084         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
28085         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
28086         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
28087         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
28088         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
28089         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
28090         * defaults.h: Updated for above mentioned changes.
28091
28092 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
28093
28094         * c-common.c: Remove header include of tm_p.h.
28095         * Makefile.in (c-common.o): Remove TM_P_H dependency.
28096
28097 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
28098
28099         * tree.h (struct tree_decl_map): New type.
28100         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
28101         (tree_decl_map_hash): New prototype.
28102         (debug_expr_for_decl, value_expr_for_decl): Change into
28103         tree_decl_map hashtab from tree_map.
28104         (init_ttree): Adjust initialization.
28105         (tree_decl_map_hash): New function.
28106         (decl_debug_expr_lookup, decl_debug_expr_insert,
28107         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
28108
28109 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28110
28111         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
28112         linker emulations.
28113         * configure: Regenerate.
28114         * config.in: Regenerate.
28115
28116         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
28117         (X86_64_EMULATION): Define.
28118         (TARGET_LD_EMULATION): Use them.
28119
28120         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
28121         (SPARC64_EMULATION): Define.
28122         (LINK_ARCH_SPEC): Use them.
28123
28124 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
28125
28126         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
28127         smallest_mode_for_size for computing the precision types of new
28128         graphite IVs.  Do not call lang_hooks.types.type_for_size.
28129
28130 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
28131
28132         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
28133         information.
28134         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
28135
28136 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
28137
28138         PR middle-end/44363
28139         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
28140         return false instead.
28141
28142 2010-06-02  Jan Hubicka  <jh@suse.cz>
28143
28144         PR middle-end/44295
28145         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
28146         create new cgraph node to check callee.
28147
28148 2010-06-02  Richard Guenther  <rguenther@suse.de>
28149
28150         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
28151
28152 2010-06-02  Richard Guenther  <rguenther@suse.de>
28153
28154         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
28155         (lto_wrapper_cleanup): ... this.  Do not exit.
28156         (fatal): Adjust.  Exit here.
28157         (fatal_perror): Likewise.
28158         (fatal_signal): New function.
28159         (main): Set up signal handlers to cleanup temporary files.
28160         * Makefile.in (lto-wrapper.o): Adjust dependencies.
28161
28162 2010-06-02  Richard Guenther  <rguenther@suse.de>
28163
28164         PR tree-optimization/44377
28165         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
28166
28167 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28168
28169         * config/s390/2097.md (z10_fhex): Remove insn reservation.
28170         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
28171         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
28172         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
28173         instruction.
28174         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
28175
28176 2010-06-02  Jan Hubicka  <jh@suse.cz>
28177
28178         * bitmap.c (bitmap_descriptor): Add search_iter.
28179         (bitmap_find_bit): Increment it.
28180         (print_statistics): Print it.
28181
28182 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
28183
28184         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
28185         instead of gimple_build_call_vec.  Delete unnecessary local variable.
28186
28187 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
28188
28189         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
28190         change from yesterday.
28191
28192 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
28193
28194         * c-ada-spec.c: Clean up redundant includes.
28195
28196 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
28197
28198         * gimplify.c: Do not include except.h and optabs.h.
28199         (gimplify_body): Do not initialize RTL profiling.
28200         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
28201         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
28202         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
28203         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
28204         langhooks.h.
28205
28206         * tree-pretty-print.h: Include pretty-print.h.
28207         * gimple-pretty-print.h: Include pretty-print.h.
28208
28209         * tree-pretty-print.c: Do not include diagnostic.h.
28210         * tree-vrp.c: Likewise.
28211         * tree-tailcall.c: Likewise
28212         * tree-scalar-evolution.c: Likewise
28213         * tree-ssa-dse.c: Likewise
28214         * tree-chrec.c: Likewise
28215         * tree-ssa-sccvn.c: Likewise
28216         * tree-ssa-copyrename.c: Likewise
28217         * tree-nomudflap.c: Likewise
28218         * tree-call-cdce.c: Likewise
28219         * tree-stdarg.c: Likewise
28220         * tree-ssa-math-opts.c: Likewise
28221         * tree-nrv.c: Likewise
28222         * tree-ssa-sink.c: Likewise
28223         * tree-browser.c: Likewise
28224         * tree-ssa-loop-ivcanon.c: Likewise
28225         * tree-ssa-loop.c: Likewise
28226         * tree-parloops.c: Likewise
28227         * tree-ssa-address.c: Likewise
28228         * tree-ssa-ifcombine.c: Likewise
28229         * tree-if-conv.c: Likewise
28230         * tree-data-ref.c: Likewise
28231         * tree-affine.c: Likewise
28232         * tree-ssa-phiopt.c: Likewise
28233         * tree-ssa-coalesce.c: Likewise
28234         * tree-ssa-pre.c: Likewise
28235         * tree-ssa-live.c: Likewise
28236         * tree-predcom.c: Likewise
28237         * tree-ssa-forwprop.c: Likewise
28238         * tree-ssa-dce.c: Likewise
28239         * tree-ssa-ter.c: Likewise
28240         * tree-ssa-loop-prefetch.c: Likewise
28241         * tree-optimize.c: Likewise
28242         * tree-ssa-phiprop.c: Likewise
28243         * tree-object-size.c: Likewise
28244         * tree-outof-ssa.c: Likewise
28245         * tree-ssa-structalias.c: Likewise
28246         * tree-switch-conversion.c: Likewise
28247         * tree-ssa-reassoc.c: Likewise
28248         * tree-ssa-operands.c: Likewise
28249         * tree-vectorizer.c: Likewise
28250         * tree-vect-data-refs.c: Likewise
28251         * tree-vect-generic.c: Likewise
28252         * tree-vect-stmts.c: Likewise
28253         * tree-vect-patterns.c: Likewise
28254         * tree-vect-slp.c: Likewise
28255         * tree-vect-loop.c: Likewise
28256         * tree-ssa-loop-ivopts.c: Likewise
28257         * tree-ssa-loop-im.c: Likewise
28258         * tree-ssa-loop-niter.c: Likewise
28259         * tree-ssa-loop-unswitch.c: Likewise
28260         * tree-ssa-loop-manip.c: Likewise
28261         * tree-ssa-loop-ch.c: Likewise
28262         * tree-dump.c: Likewise
28263         * tree-complex.c: Likewise
28264
28265         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
28266         * tree-ssa-uninit.c: Likewise
28267         * tree-ssa-threadupdate.c: Likewise
28268         * tree-ssa-uncprop.c: Likewise
28269         * tree-ssa-ccp.c: Likewise
28270         * tree-ssa-dom.c: Likewise
28271         * tree-ssa-propagate.c: Likewise
28272         * tree-ssa-alias.c: Likewise
28273         * tree-dfa.c: Likewise
28274         * tree-cfgcleanup.c: Likewise
28275         * tree-sra.c: Likewise
28276         * tree-ssa-copy.c: Likewise
28277         * tree-ssa.c: Likewise
28278         * tree-profile.c: Likewise
28279         * tree-cfg.c: Likewise
28280         * tree-ssa-threadedge.c: Likewise
28281         * tree-vect-loop-manip.c: Likewise
28282
28283         * tree-inline.c: Do not include diagnostic.h and expr.h.
28284         Include rtl.h.
28285         (copy_decl_for_dup_finish): Do not use NULL_RTX.
28286
28287         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
28288         * tree-loop-distribution.c: Likewise.
28289
28290 2010-06-01  Jan Hubicka  <jh@suse.cz>
28291
28292         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
28293
28294 2010-06-01  Jan Hubicka  <jh@suse.cz>
28295
28296         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
28297         remove return value.
28298         (split_bbs_on_noreturn_calls) .... here.
28299         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
28300         * tree-flow.h (fixup_noreturn_call): New.
28301
28302 2010-06-01  Jan Hubicka  <jh@suse.cz>
28303
28304         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
28305
28306 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
28307
28308         * tree.h (build_nt_call_list): Delete.
28309         * tree.c (build_nt_call_list): Delete.
28310
28311 2010-06-01  Jan Hubicka  <jh@suse.cz>
28312
28313         * fwprop.c: Make emit-rtl.h include last.
28314         * rtlanal.c: Include emit-rtl.h.
28315         * genautomata.c: Output emit-rtl include into insn-automata.c
28316         * df-scan.c: Include emit-rtl.h.
28317         * haifa-sched.c: Indlude emit-rtl.h.
28318         * mode-switching.c: Indlude emit-rtl.h.
28319         * graph.c: Indlude emit-rtl.h.
28320         * sel-sched.c: Include emit-rtl.h.
28321         * sel-sched-ir.c: Include emit-rtl.h.
28322         * ira-build.c: Include emit-rtl.h.
28323         * emit-rtl.c (first_insn, last_insn): Remove defines.
28324         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
28325         Move to emit-rtl.h.
28326         (set_new_first_and_last_insn, get_last_insn_anywhere,
28327         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
28328         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
28329         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
28330         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
28331         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
28332         Use accessor functions.
28333         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
28334          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
28335         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
28336         mem_expr_equal_p): Move here from rtl.h.
28337         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
28338         Move here from emit-rtl.c; make inline.
28339         * cfglayout.h: Include emit-rtl.h.
28340         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
28341          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
28342         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
28343         mem_expr_equal_p, get_insns, set_first-insn,
28344         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
28345         * reg-stack.c: Include emit-rtl.h.
28346         * dce.c: Likewise.
28347
28348 2010-06-01  Jan Hubicka  <jh@suse.cz>
28349
28350         * cgraph.h (tree_function_versioning): Update prototype.
28351         (cgraph_function_versioning): Update prototype.
28352         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
28353         bitmap.
28354         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
28355         (cgraph_materialize_clone, save_inline_function_body): Update use of
28356         tree_function_versioning.
28357         * tree-inline.c (copy_bb): Look for previous copied block to link
28358         after; fix debug output.
28359         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
28360         (copy_body): Likewise.
28361         (expand_call_inline): Update use of copy_body.
28362         (tree_function_versioning): Update use of copy body; accept
28363         blocks_to_copy and new_entry.
28364
28365 2010-06-01  Jan Hubicka  <jh@suse.cz>
28366
28367         * gegenrtl.c: Remove unnecesary prototypes.
28368         (gendecl): Remove.
28369         (gendef): Produce static inline.
28370         (gencode): Remove.
28371         (main): Do not decode parameters; generate header only.
28372         * Makefile.in (genrtl.c): Remove.
28373
28374 2010-06-01  Jan Hubicka  <jh@suse.cz>
28375
28376         * tree-switch-conversion.c (build_one_array): Make it readonly.
28377
28378 2010-06-01  Richard Guenther  <rguenther@suse.de>
28379
28380         * optabs.c (init_optabs): Guard all accesses to reinit.
28381         * ipa-pure-const.c (propagate): Fix another typo.
28382         * opts.c (common_handle_option): Split assignment to bool.
28383         * c-opts.c (c_common_handle_option): Likewise.
28384
28385 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
28386             Matthew Gingell  <gingell@adacore.com>
28387
28388         * doc/invoke.texi: Mention -fdump-ada-spec.
28389         * tree-dump.c (dump_files): Add ada-spec.
28390         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
28391         * tree-pass.h (tree_dump_index): Add TDI_ada.
28392         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
28393         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
28394         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
28395         * c-decl.c: Include c-ada-spec.h.
28396         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
28397         functions.
28398         (c_write_global_declarations): Add handling of -fdump-ada-spec.
28399         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
28400         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
28401         * c-ada-spec.h, c-ada-spec.c: New files.
28402
28403 2010-06-01  Richard Guenther  <rguenther@suse.de>
28404
28405         PR lto/43853
28406         * ipa-pure-const.c (get_function_state): Hand back varying state
28407         if we do not have one.
28408         (has_function_state): New function.
28409         (duplicate_node_data): Adjust.
28410         (remove_node_data): Likewise.
28411         (pure_const_write_summary): Likewise.
28412         (propagate): Likewise.  Fix typo.
28413
28414 2010-06-01  Jan Hubicka  <jh@suse.cz>
28415
28416         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
28417         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
28418         (execute_all_ipa_transforms): Do not play with the states.
28419
28420 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
28421
28422         * config/arm/t-linux-androideabi: New.
28423         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
28424
28425 2010-06-01  Jan Hubicka  <jh@suse.cz>
28426
28427         * tree-inline.c (estimate_num_insns): For stdarg functions look
28428         into call statement to count cost of argument passing.
28429
28430 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
28431
28432         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
28433         argument for fprintf.
28434         (ix86_output_addr_diff_elt): Likewise.
28435         (x86_function_profiler): Likewise.
28436         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
28437         (LPREFIX): Likewise.
28438         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
28439
28440 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
28441
28442         PR target/44338
28443         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
28444         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
28445         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
28446         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
28447         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
28448         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
28449         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
28450         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
28451         TARGET_FUSED_MADD.
28452
28453 2010-05-31  Jan Hubicka  <jh@suse.cz>
28454
28455         * tree.h (tree_range_check_failed): Declare noreturn.
28456
28457 2010-05-31  Jan Hubicka  <jh@suse.cz>
28458
28459         * gimple.c (gimple_call_builtin_p): New function.
28460         * gimple.h (gimple_call_builtin_p): Declare.
28461         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
28462         to exit.
28463         (execute_warn_function_return): BUILT_IN_RETURN is return.
28464         (split_critical_edges): Return edges are not critical.
28465         (is_ctrl_altering_stmt): Builtin_in_return is altering.
28466         (gimple_verify_flow_info): Handle built_in_return.
28467         (execute_warn_function_return): Handle built_in_return.
28468         * ipa-pure-const.c (check_call): Ignore builtin_return.
28469
28470 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
28471
28472         PR middle-end/44337
28473         * expr.c (expand_assignment): Don't store anything for out-of-bounds
28474         array accesses with non-MEM.
28475
28476         PR tree-optimization/44182
28477         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
28478         newly needs to end a bb is followed by debug stmts, instead return
28479         true from the function at the end.
28480         (maybe_move_debug_stmts_to_successors): New function.
28481         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
28482
28483 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
28484
28485         PR target/44161
28486         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
28487
28488 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
28489
28490         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
28491         for nested functions in non-optimized compilation.
28492
28493 2010-05-31  Richard Guenther  <rguenther@suse.de>
28494
28495         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
28496
28497 2010-05-30  Jan Hubicka  <jh@suse.cz>
28498
28499         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
28500
28501 2010-05-30  Richard Guenther  <rguenther@suse.de>
28502
28503         PR lto/42975
28504         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
28505         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
28506         no longer needed.
28507
28508 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
28509
28510         * config/darwin.c (output_objc_section_asm_op): Add comment.
28511         (name_needs_quotes): Add '_' to list of valid comment chars.
28512         (machopic_output_function_base_name): Remove unneeded quotes.
28513         (darwin_encode_section_info): Adjust asm whitespace.
28514         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
28515         (ASM_OUTPUT_LOCAL): Ditto.
28516         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
28517         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
28518         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
28519
28520 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
28521
28522         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
28523         RS6000_OUTPUT_BASENAME unconditionally.
28524         (rs6000_output_function_epilogue): Likewise.
28525
28526 2010-05-30  Jan Hubicka  <jh@suse.cz>
28527
28528         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
28529         nodes.
28530
28531 2010-05-30  Richard Guenther  <rguenther@suse.de>
28532
28533         * tree-cfg.c (verify_gimple_assign_single): Implement
28534         verification for COND_EXPR rhs.
28535
28536 2010-05-30  Jan Hubicka  <jh@suse.cz>
28537
28538         * cgraph.h (cgraph_dump_file): Declare.
28539         * cgraphunit.c (cgraph_dump_file): Export.
28540         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
28541
28542 2010-05-30  Jan Hubicka  <jh@suse.cz>
28543
28544         * dwarf2out.c (reference_to_unused,
28545         premark_types_used_by_global_vars_helper): Avoid creation of new
28546         varpool nodes.
28547
28548 2010-05-30  Jan Hubicka  <jh@suse.cz>
28549
28550         * cgraph.h (cgraph_node_cannot_return,
28551         cgraph_edge_cannot_lead_to_return): New functions.
28552         * cgraph.c (cgraph_node_cannot_return,
28553         cgraph_edge_cannot_lead_to_return): Use them.
28554         * ipa-pure-const.c (pure_const_names): New static var.
28555         (check_call): Handle calls not leading to return.
28556         (pure_const_read_summary): Dump info read.
28557         (propagate): Dump info about propagation process; ignore side effects
28558         of functions not leading to exit; fix handling of pure functions.
28559
28560 2010-05-30  Jan Hubicka  <jh@suse.cz>
28561
28562         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
28563         for tail call epilogues.
28564
28565 2010-05-30  Jan Hubicka  <jh@suse.cz>
28566
28567         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
28568         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
28569         dump files.
28570
28571 2010-05-29  Jan Hubicka  <jh@suse.cz>
28572
28573         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
28574         node; remove references in node we no longer keep in cgrpah but need
28575         body of.
28576
28577 2010-05-29  Jan Hubicka  <jh@suse.cz>
28578
28579         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
28580
28581 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
28582
28583         PR target/44165
28584         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
28585
28586 2010-05-29  Jan Hubicka  <jh@suse.cz>
28587
28588         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
28589         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
28590         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
28591         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
28592         debug_names_replaced_by, debug_update_ssa): Likewise.
28593         * sbitmap.c (debug_sbitmap): Likewise.
28594         * genrecog.c (debug_decision, debug_decision_list): Likewise.
28595         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
28596         debug_tree_chain): Likewise.
28597         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
28598         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
28599         * optabs.c (debug_optab_libfuncs): Likewise.
28600         (verify_loop_closed_ssa): Likewise.
28601         * value-prof.c (verify_histograms): Likewise.
28602         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
28603         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
28604         * cfghooks.c (verify_flow_info): Likewise.
28605         * fold-const.c (debug_fold_checksum): Likewise.
28606         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
28607         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
28608         Likewise.
28609         * omega.c (debug_omega_problem): Likewise.
28610         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
28611         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
28612         * dominance.c (verify_dominators, debug_dominance_info,
28613         debug_dominance_tree): Likewise.
28614         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
28615         * df_regno_debug, df_ref_debug,
28616         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
28617         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
28618         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
28619         * sel-sched.c (debug_state): Likewise.
28620         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
28621         Likewise.
28622         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
28623         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
28624         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
28625         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
28626         Likewise.
28627         * c-pretty-print.c (debug_c_tree): Likewise.
28628         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
28629         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
28630         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
28631         * ebitmap.c (debug_ebitmap): Likewise.
28632         * function.c (debug_find_var_in_block_tree): Likewise.
28633         * print-rtl.c (debug_rtx): Likewise.
28634         (debug_rtx_count): Likewise.
28635         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
28636         * stor-layout.c (debug_rli): Likewise.
28637         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
28638         * tree-data-ref.c (debug_data_references,
28639         debug_data_dependence_relations, debug_data_reference,
28640         debug_data_dependence_relation, debug_rdg_vertex,
28641         debug_rdg_component, debug_rdg): Likewise.
28642         * tree-affine.c (debug_aff): Likewise.
28643         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
28644         Likewise.
28645         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
28646         * emit-rtl.c (verify_rtl_sharing): Likewise.
28647         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
28648         debug_value_expressions): Likewise.
28649         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
28650         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
28651         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
28652         * cfglayout.c (verify_insn_chain): Likewise.
28653         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
28654         debug_clast_stmt, debug_generated_program): Likewise.
28655         * ggc-page.c (debug_print_page_list): Likewise.
28656         * tree-ssa-ter.c (debug_ter): Likewise.
28657         * graphite-dependences.c (debug_pddr): Likewise.
28658         * sched-deps.c (debug_ds): Likewise.
28659         * tree-ssa.c (verify_ssa): Likewise.
28660         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
28661         debug_scattering_functions, debug_iteration_domains, debug_pdr,
28662         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
28663         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
28664         * tree-inline.c (debug_find_tree): Likewise.
28665         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
28666         debug_ppl_powerset_matrix): Likewise.
28667         * var-tracking.c (debug_dv): Likewise.
28668         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
28669         * cfgloop.c (verify_loop_structure): Likewise.
28670         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
28671         * c-common.c (verify_sequence_points): Likewise.
28672         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
28673         debug_candidates, debug_rgn_dependencies): Likewise.
28674         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
28675         * debug_constraint_graph, debug_solution_for_var,
28676         debug_sa_points_to_info): Likewise.
28677         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
28678         Likewie.
28679         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
28680         debug_loops, debug_loop, debug_loop_num): Likewise.
28681         * passes.c (debug_pass): Likewise.
28682         (dump_properties): Likewise; add cfglayout property.
28683         (debug_properties): Likewise.
28684         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
28685         * varpool.c (debug_varpool): Likewise.
28686         * regcprop.c (debug_value_data): Likewise.
28687         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
28688         debug_immediate_uses_for): Likewise.
28689
28690 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
28691
28692         PR bootstrap/44315
28693         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
28694         Filter out insn-flags.h.
28695
28696 2010-05-29  Jan Hubicka  <jh@suse.cz>
28697
28698         * cgraph.h (struct varpool_node_set_def,
28699         struct cgraph_node_set_def): Remove unused AUX pointer.
28700         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
28701         VEC_empty macro.
28702
28703 2010-05-29  Jan Hubicka  <jh@suse.cz>
28704
28705         PR middle-end/44324
28706         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
28707
28708 2010-05-29  Richard Guenther  <rguenther@suse.de>
28709
28710         * lto-streamer.c (cached_bp): New global variable.
28711         (bitpack_create): Return the cached bitpack, if available.
28712         (bitpack_delete): Clear and cache the bitpack, if appropriate.
28713         (bp_pack_value): Remove redundant asserts.
28714
28715 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
28716
28717         PR middle-end/44306
28718         * tree-if-conv.c (is_true_predicate): New.
28719         (is_predicated): Use is_true_predicate.
28720         (add_to_predicate_list): Same.  Do not use unshare_expr.
28721         (add_to_dst_predicate_list): Same.
28722
28723 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
28724
28725         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
28726         field on edges.
28727         (predicate_bbs): Same.
28728         (clean_predicate_lists): Same.
28729         (find_phi_replacement_condition): Do not AND the predicate from
28730         edge->aux.
28731
28732 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
28733
28734         PR bootstrap/44315
28735         * Makefile.in (build/gencondmd.o): Add a missing `\'.
28736
28737 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
28738
28739         PR target/44261
28740         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
28741         (negdf2): Adjust expander pattern and use negdf2_slow.
28742         (negsf2): Likewise.
28743
28744 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
28745
28746         * basic-block.h (struct control_flow_graph): Move last_label_uid field
28747         up.
28748         * df.h (struct df_base_ref): Move regno field up.
28749         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
28750         * expr.h (struct separate_ops): Move location field up.
28751         * optabs.h (struct optab_d): Move libcall_basename field down.
28752         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
28753         * config/i386/i386.h (struct machine_function): Convert call_abi field
28754         into a bitfield.  Move cfa field to the end of the structure.
28755
28756 2010-05-29  Jan Hubicka  <jh@suse.cz>
28757
28758         * varpool.c (varpool_get_node): Fix lookup.
28759
28760 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
28761
28762         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
28763         RTL specific prototypes with #ifdef RTX_CODE.
28764         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
28765         * config/spu/t-spu-elf: Fix dependencies.
28766
28767         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
28768
28769 2010-05-29  Mike Stump  <mikestump@comcast.net>
28770
28771         PR bootstrap/44315
28772         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
28773         TM_H when building to avoid dependency loops.
28774
28775 2010-05-29  Jan Hubicka  <jh@suse.cz>
28776
28777         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
28778         refs and body; not the whole node for masters of materialized clones.
28779
28780 2010-05-29  Mike Stump  <mikestump@comcast.net>
28781
28782         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
28783
28784 2010-05-29  Jan Hubicka  <jh@suse.cz>
28785
28786         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
28787         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
28788         use of clone_function_name.
28789         * cgraph.h (cgraph_create_virtual_clone,
28790         cgraph_function_versioning): update prototypes.
28791         (clone_function_name): Declare.
28792         * ipa-cp.c (ipcp_insert_stage): Update call of
28793         cgraph_create_virtual_clone.
28794         * omp-low.c (create_omp_child_function_name): Use
28795         cgraph_create_virtual_clone.
28796         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
28797         (cgraph_function_versioning): Take SUFFIX argument; produce new name
28798         and make decl local.
28799
28800 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
28801
28802         * vec.h: Include statistics.h
28803         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
28804         with VEC_H.
28805
28806 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
28807
28808         * c-lex.c: Do not include c-tree.h.
28809         * c-pretty-print.c: Likewise.
28810         * c-opts.c: Likewise.
28811         * c-gimplify.c: Likewise.
28812         * c-common.c: Likewise.
28813         * c-dump.c: Likewise.  Include c-common.h.
28814
28815 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
28816
28817         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
28818         before including diagnostic-core.h.
28819         (c_cpp_error): New prototype moved from c-tree.h.
28820         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
28821         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
28822         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
28823         (c_cpp_error): Prototype moved to c-common.h.
28824         * Makefile.in: Update dependency for C_COMMON_H.
28825
28826 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
28827
28828         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
28829         * c-common.c (c_register_addr_space): Remove here.
28830         * c-decl.c (c_register_addr_space): Re-add here.
28831
28832 2010-05-28  Mike Stump  <mikestump@comcast.net>
28833
28834         * config/darwin-c.c: Remove c-tree.h include.
28835
28836 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
28837
28838         * gcc.c: Include diagnostic.h.
28839         (error_count): Remove.  All users changed to use errorcount.
28840         (programname): Remove.  All users changed to use progname.
28841         (fancy_abort, internal_error, fatal_error, error, warning, inform,
28842         fnotice): Remove.
28843         (execute): Don't include "Internal error" and bug reporting
28844         information in argument of internal_error call.
28845         (process_command): Don't increment error_count after calling
28846         perror_with_name.
28847         (input_filename): Rename to gcc_input_filename.  All users
28848         changed.
28849         (main): Call diagnostic_initialize.  Register delete_temp_files
28850         with atexit.  Use seen_error to test for errors.
28851         * gcc.h: Include diagnostic-core.h.
28852         (fatal_error, error, warning): Remove.
28853         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
28854         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
28855         (gcc.o): Update dependencies.
28856
28857 2010-05-28  Jeff Law  <law@redhat.com>
28858
28859         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
28860         functions.
28861         * ira.h (ira_bad_reload_regno): Declare
28862         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
28863
28864         * ira-color.c (update_curr_costs): Free updated hard reg costs.
28865         (ira_reassign_conflict_allocnos): Remove bogus asserts.
28866         (allocno_reload_assign): Likewise.
28867
28868 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
28869
28870         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
28871         build1_stat.
28872
28873 2010-05-28  Richard Guenther  <rguenther@suse.de>
28874
28875         PR lto/44312
28876         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
28877         Stream fixed-point constants mode.
28878         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
28879         and TYPE_PRECISION.
28880         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
28881         Stream fixed-point constants mode.
28882         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
28883         and TYPE_PRECISION.
28884
28885 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
28886
28887         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
28888         only place it was called from.
28889         (number_of_latch_executions): Do not return chrec_dont_know when the
28890         may_be_zero is a runtime condition: instead, return a COND_EXPR
28891         including the may_be_zero condition.
28892         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
28893         of nb_iterations.
28894         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
28895         COND_EXPRs.
28896
28897 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
28898
28899         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
28900         generate COND_EXPRs for degenerate_phi_result.
28901
28902 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
28903
28904         PR middle-end/44293
28905         * tree-if-conv.c (if_convertible_loop_p): Check the
28906         if-convertibility of phi nodes in non predicated BBs.
28907
28908 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
28909
28910         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
28911
28912 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
28913
28914         PR driver/15303
28915         * gcc.c (inform, warning, inform): New functions.
28916         (fatal_ice): Rename to internal_error; change cmsgid parameter to
28917         gmsgid.  All callers changed.
28918         (notice): Rename to fnotice; add parameter fp.  All callers changed.
28919         (fatal_error): Rename to fatal_signal.  All users changed.
28920         (fatal): Rename to fatal_error; change cmsgid parameter to
28921         gmsgid.  All callers changed.
28922         (process_command): Use warning instead of error for warnings.
28923         (end_going_arg): Don't use _() around argument of error.
28924         (do_spec_1): Use inform for message from %n specs.  Use warning
28925         instead of error for warnings.
28926         (main): Use inform for comparison messages.  Use warning for
28927         message about unused linker input.
28928         (error): Increment error_count.  Print "error: ".
28929         * gcc.h (fatal): Change to fatal_error.
28930         (warning): Declare.
28931         * config/darwin-driver.c (darwin_default_min_version): Use warning
28932         instead of fprintf for warnings.
28933         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
28934
28935 2010-05-28  Julian Brown  <julian@codesourcery.com>
28936
28937         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
28938         (*thumb2_addsi3_compare0_scratch): New.
28939         * config/arm/constraints.md (Pv): New.
28940         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
28941         for ARM mode only.
28942         (*addsi3_compare0_scratch): Likewise.
28943
28944 2010-05-28  Jan Hubicka  <jh@suse.cz>
28945
28946         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
28947         check.
28948         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
28949         only on local statics.
28950
28951 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
28952
28953         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
28954
28955 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
28956
28957         PR bootstrap/44314
28958         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
28959         (OPTION_GLIBC): Define.
28960
28961 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
28962
28963         PR debug/41048
28964         * dwarf2out.c (double_int_type_size_in_bits): New function.
28965         (round_up_to_align): Change first argument and return value to
28966         double_int.
28967         (field_byte_offset): Work internally on double_ints.
28968
28969         PR target/43636
28970         * builtins.c (expand_movstr): Use a temporary pseudo instead
28971         of target even when target is not NULL and not const0_rtx, but
28972         fails movstr predicate.
28973         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
28974
28975 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
28976
28977         * final.c (rest_of_clean_state): Use %m in errors instead of
28978         strerror (errno).
28979         * gengtype.c (read_input_list, close_output_files): Use xstrerror
28980         instead of strerror.
28981         * toplev.c (process_options): Use %m in errors instead of strerror
28982         (errno).
28983         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
28984         (errno).
28985
28986 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
28987
28988         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
28989         (ix86_canonical_va_list_type): Make static.  Add declaration.
28990         (ix86_enum_va_list): Make static.  Reindent.
28991         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
28992         (ix86_canonical_va_list_type): Ditto.
28993         (ix86_enum_va_list): Ditto.
28994
28995 2010-05-28  Richard Guenther  <rguenther@suse.de>
28996
28997         * lto-wrapper.c (run_gcc): With -save-temps generate a
28998         user-visible ltrans filename.  Fixup ltrans unit numbering.
28999
29000 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
29001
29002         * c-common.c (c_common_nodes_and_builtins): Replace use
29003         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
29004         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
29005         to ix86_enum_va_list.
29006         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
29007         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
29008         (TARGET_ENUM_VA_LIST_P): Add hook description.
29009         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
29010         * target.h (gcc_target): Add enum_va_list hook.
29011
29012         PR bootstrap/44299
29013         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
29014         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
29015         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
29016
29017 2010-05-28  Alan Modra  <amodra@gmail.com>
29018
29019         PR target/44266
29020         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
29021         emit_library_call machinery to set up __tls_get_addr calls.
29022
29023 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
29024
29025         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
29026
29027 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
29028
29029         Revert fix for PR c++/44188
29030         * c-common.c (is_typedef_decl): Revert the moving of  this
29031         definition ...
29032         * tree.c (is_typedef_decl): ... here.
29033         (typdef_variant_p): Revert the moving of this  definition
29034         here from cp/tree.c.
29035         * c-common.h (is_typedef_decl): Revert the moving of this
29036         declaration ...
29037         * tree.h (is_typedef_decl): ... here.
29038         (typedef_variant_p): Revert the moving of this  declaration here
29039         from cp/cp-tree.h
29040         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
29041         (gen_tagged_type_die): Revert the splitting out of ...
29042         (gen_type_die_with_usage): ... this function. Revert the anonymous
29043         tagged type handling.
29044         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
29045         typedefs naming anonymous tagged types.
29046
29047 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
29048
29049         * config/rs6000/rs6000-modes.def (PSImode): Delete.
29050
29051 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
29052
29053         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
29054         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
29055         throughout.
29056         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
29057         "xer" to "ca".
29058         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
29059         XER_REGS to CA_REGS throughout.
29060         * config/rs6000/rs6000.h: Same.
29061         (ADDITIONAL_REGISTER_NAMES): Add "xer".
29062         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
29063         that mode_iterator "P" is the size for arithmetic carries as well.
29064         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
29065
29066 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
29067
29068         PR bootstrap/44255
29069         * combine.c (struct rtx_subst_pair): Define unconditionally.
29070         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
29071         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
29072         Call make_compound_operation on pair->to.
29073         (propagate_for_debug): Don't call make_compound_operation here.
29074         Always use simplify_replace_fn_rtx.
29075
29076 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
29077
29078         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
29079         * config/xtensa/xtensa.c (override_options): Check
29080           TARGET_FORCE_NO_PIC and set flag_pic.
29081         * config/xtensa/xtensa.opt: Document -mforce-no-pic
29082
29083 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
29084
29085         PR bootstrap/44299
29086         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
29087         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
29088
29089 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
29090
29091         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
29092         toplev.h.
29093         * diagnostic.c: Don't include toplev.h.
29094         (progname): Define.  Moved from toplev.c.
29095         (seen_error): New function.
29096         * diagnostic.h: Include diagnostic-core.h.
29097         (diagnostic_t, emit_diagnostic): Don't declare here.
29098         * toplev.c (progname): Move to toplev.c.
29099         (emit_debug_global_declarations, compile_file, finalize,
29100         do_compile, toplev_main): Use seen_error.
29101         * toplev.h: Include diagnostic-core.h.
29102         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
29103         internal_error, warning, warning_at, error, error_n, error_at,
29104         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
29105         verbatim, fnotice, progname): Move to diagnostic-core.h.
29106         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
29107         (expand_builtin_expect): Use seen_error.
29108         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
29109         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
29110         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
29111         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
29112         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
29113         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
29114         errorcount for errors.
29115         * c-opts.c (c_common_finish): Use seen_error.
29116         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
29117         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
29118         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
29119         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
29120         (get_coverage_counts): Use seen_error.
29121         * dwarf2out.c (dwarf2out_finish): Use seen_error.
29122         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
29123         gimplify_body): Use seen_error.
29124         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
29125         * ipa-pure-const.c (gate_pure_const): Use seen_error.
29126         * ipa-reference.c (gate_reference): Use seen_error.
29127         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
29128         * lambda-code.c: Include diagnostic-core.h instead of
29129         diagnostic.h.
29130         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
29131         * lto-compress.c: Include diagnostic-core.h instead of
29132         diagnostic.h.
29133         * lto-section-in.c: Include diagnostic-core.h instead of
29134         diagnostic.h.
29135         * lto-streamer-out.c: Include diagnostic-core.h instead of
29136         diagnostic.h.
29137         * lto-streamer.c: Include diagnostic-core.h instead of
29138         diagnostic.h.
29139         (gate_lto_out): Use seen_error.
29140         * matrix-reorg.c: Include diagnostic-core.h instead of
29141         diagnostic.h.
29142         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
29143         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
29144         (gate_expand_omp, lower_omp_1): Use seen_error.
29145         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
29146         (rest_of_decl_compilation, rest_of_type_compilation,
29147         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
29148         * tree-cfg.c (label_to_block_fn): Use seen_error.
29149         * tree-inline.c (optimize_inline_calls): Use seen_error.
29150         * tree-mudflap.c (mudflap_finish_file): Use
29151         seen_error.
29152         * tree-optimize.c (gate_all_optimizations,
29153         gate_all_early_local_passes, gate_all_early_optimizations): Use
29154         seen_error.
29155         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
29156         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
29157         (varpool_remove_unreferenced_decls,
29158         varpool_assemble_pending_decls): Use seen_error.
29159         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
29160         (TOPLEV_H, DIAGNOSTIC_H): Update.
29161         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
29162         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
29163         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
29164         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
29165         coverage.o, lambda-code.o): Update dependencies.
29166
29167 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
29168
29169         PR c++/44188
29170         * c-common.c (is_typedef_decl): Move this definition ...
29171         * tree.c (is_typedef_decl): ... here.
29172         (typdef_variant_p): Move definition here from cp/tree.c.
29173         * c-common.h (is_typedef_decl): Move this declaration ...
29174         * tree.h (is_typedef_decl): ... here.
29175         (typedef_variant_p): Move declaration here from cp/cp-tree.h
29176         * dwarf2out.c (is_naming_typedef_decl): New function.
29177         (gen_tagged_type_die): Split out of ...
29178         (gen_type_die_with_usage): ... this function. When an anonymous
29179         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
29180         is emitted for the typedef.
29181         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
29182         anonymous tagged types.
29183
29184 2010-05-27  Jason Merrill  <jason@redhat.com>
29185
29186         * print-tree.c (debug_vec_tree): New fn.
29187         (print_vec_tree): New fn.
29188         * tree.h: Declare them.
29189         * gdbinit.in (pvt): New command.
29190
29191         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
29192
29193         * gdbinit.in (pdd): New command.
29194
29195 2010-05-27  Jan Hubicka  <jh@suse.cz>
29196
29197         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
29198         (update_caller_keys): Return early if there are no callers;
29199         only update fibheap when decresing the key.
29200         (update_callee_keys): Avoid recursion.
29201         (decide_inlining_of_small_functions): When badness does not match;
29202         re-insert into fibheap.
29203
29204 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
29205
29206         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
29207         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
29208         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
29209         (ALL_HOST_OBJS): Now a union of the above two.
29210         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
29211         all files in ALL_HOST_FRONTEND_OBJS.
29212         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
29213
29214         * c-common.c: Pretend to be a backend file by undefining
29215         IN_GCC_FRONTEND (still need rtl.h here).
29216
29217 2010-05-27  Jan Hubicka  <jh@suse.cz>
29218
29219         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
29220         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
29221
29222 2010-05-27  Jan Hubicka  <jh@suse.cz>
29223
29224         * sched-ebb.c: Rename struct deps to struct deps_desc.
29225         * ddg.c: Likewise.
29226         * sel-sched-ir.c: Likewise.
29227         * sched-deps.c: Likewise.
29228         * sched-int.h: Likewise.
29229         * sched-rgn.c: Likewise.
29230
29231 2010-05-27  Jon Beniston  <jon@beniston.com>
29232
29233         PR 43726
29234         * config/lm32/lm32.h: Remove definition of
29235         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
29236
29237 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
29238
29239         PR lto/44230
29240         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
29241
29242 2010-05-27  Richard Guenther  <rguenther@suse.de>
29243
29244         PR tree-optimization/44284
29245         * tree-vect-stmts.c (vectorizable_assignment): Handle
29246         sign-changing conversions as simple copy.
29247
29248 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
29249
29250         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
29251         Bionic C library.
29252         (__gthread_active_p): Check for pthread_create if compiling against
29253         Bionic C library.
29254
29255 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
29256
29257         Support compilation for Android platform.  Reimplement -mandroid.
29258
29259         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
29260         (*android*): Set ANDROID_DEFAULT.
29261         (arm*-*-linux*): Include linux-android.h.
29262         (arm*-*-eabi*): Don't include previous -mandroid implementation.
29263         * config/arm/eabi.h: Remove, move Android-specific parts ...
29264         * config/linux-android.h: ... here.  New file.
29265         * config/arm/eabi.opt: Rename to ...
29266         * config/linux-android.opt: ... this.
29267         (mandroid): Allow -mno-android option.  Initialize based on
29268         ANDROID_DEFAULT.
29269         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
29270         Move logic to corresponding LINUX_TARGET_* macros.
29271         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
29272         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
29273         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
29274         Android definitions.
29275         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
29276         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
29277         Document.
29278
29279 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
29280
29281         Add support for Bionic C library
29282
29283         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
29284         macro.
29285         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
29286         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
29287
29288         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
29289         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
29290         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
29291         to support multiple C libraries.  Handle Bionic.
29292         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
29293         (BIONIC_DYNAMIC_LINKER64): Define.
29294         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
29295         Update.
29296         (TARGET_HAS_SINCOS): Enable for Bionic.
29297
29298         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
29299         the last option specified on command line take effect.
29300         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
29301         (mbionic): New.
29302         (mglibc, muclibc): Update.
29303
29304         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
29305         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
29306         DEFAULT_LIBC.
29307
29308         * doc/invoke.texi (-mglibc, -muclibc): Update.
29309         (-mbionic): Document.
29310
29311 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
29312
29313         * c-common.h (c_register_addr_space): Add prototype.
29314         (ADDR_SPACE_KEYWORD): Remove.
29315         * c-common.c (c_register_addr_space): New function.
29316         (c_addr_space_name): Reimplement.
29317         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
29318
29319         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
29320         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
29321
29322         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
29323         Remove TARGET_ADDR_SPACE_KEYWORDS.
29324
29325 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
29326
29327         * input.c: New file.
29328         * input.h (main_input_filename): Move declaration to toplev.h.
29329         * toplev.c (input_location, line_table): Move to input.c
29330         * toplev.h (main_input_filename): Move declaration from input.h.
29331         * tree.c (expand_location): Move to input.c.
29332         * Makefile.in (OBJS-common): Add input.o.
29333         (input.o): Add dependencies.
29334
29335 2010-05-27  Richard Guenther  <rguenther@suse.de>
29336
29337         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
29338         for non-existant files.
29339         (fork_execute): Mark args_name file as deleted.
29340
29341 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
29342
29343         PR bootstrp/44287
29344         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
29345         (narrow_signed_type): Likewise.
29346
29347 2010-05-26  Jan Hubicka  <jh@suse.cz>
29348
29349         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
29350         edge only when checking is enabled; check using former_clone_of;
29351         check inline clones too.
29352         (cgraph_materialize_clone): Record former_clone_of pointer.
29353         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
29354         combining redirections; dump args_to_skip bitmap
29355         (cgraph_materialize_all_clones): Do no redirection here.
29356         * ipa-inline.c (inline_transform): Do redirection here.
29357         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
29358         cheking only).
29359
29360 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
29361
29362         * config/avr/avr-c.c: Do not include regs.h.
29363         Include cpplib.h for cpp_define and tree.h for c-common.h.
29364         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
29365         * config/avr/t-avr: Fix dependencies for avr-c.o.
29366
29367 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
29368
29369         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
29370         string instead of SYMBOL_REF rtx.
29371         * rtl.h (set_stack_check_libfunc): Move prototype from here...
29372         * libfuncs.h: ...to here.  Adjust for explow.c change.
29373
29374 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
29375
29376         * pretty-print.c: Don't include ggc.h.
29377         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
29378         (identifier_to_locale): Use them for allocation.
29379         * pretty-print.h (identifier_to_locale_alloc,
29380         identifier_to_locale_free): Declare.
29381         * toplev.c (alloc_for_identifier_to_locale): New.
29382         (general_init): Set identifier_to_locale_alloc and
29383         identifier_to_locale_free.
29384         * Makefile.in (pretty-print.o): Update dependencies.
29385
29386 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
29387
29388         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
29389         pointer types if they have different alignment or mode.
29390
29391 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
29392
29393         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
29394         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
29395         * config/sparc/sparc-protos.h (function_value): Remove declaration.
29396         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
29397         sparc_function_value_regno_p): New functions.
29398         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
29399         TARGET_FUNCTION_VALUE_REGNO_P): Define.
29400         (function_value): Rename to...
29401         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
29402         argument to 'outgoing'.
29403         (function_arg_record_value, function_arg_union_value,
29404         function_arg_vector_value): Update comment.
29405
29406 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
29407
29408         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
29409         (fde_needed_for_eh_p): New predicate.
29410         (output_call_frame_info): Use it throughout to decide whether FDEs
29411         are needed for EH purpose.
29412         (dwarf2out_begin_prologue): Reorder assignments.
29413
29414 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29415
29416         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
29417         special case loop->header.
29418         (is_predicated): New.
29419         (if_convertible_loop_p): Call it.
29420
29421 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29422
29423         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
29424         iterator in parameter.  Do not generate code during the analysis.
29425         (tree_if_convert_cond_stmt): Removed.
29426         (tree_if_convert_stmt): Removed.
29427         (predicate_bbs): New.
29428         (if_convertible_loop_p): Call predicate_bbs.
29429         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
29430         now contains all the analysis part.
29431
29432 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29433
29434         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
29435         statements in the analysis part.
29436         (tree_if_convert_stmt): Update comment.
29437         (remove_conditions_and_labels): New.
29438         (combine_blocks): Call remove_conditions_and_labels.
29439         (tree_if_conversion): Update comment.
29440
29441 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29442
29443         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
29444         than 2 predecessors or more than 2 successors.
29445
29446 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29447
29448         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
29449         of loops in which the data dependence analysis fails.
29450
29451 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29452
29453         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
29454         CDI_POST_DOMINATORS.
29455         (tree_if_conversion): Same.
29456
29457 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29458
29459         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
29460
29461 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29462
29463         * tree-if-conv.c: Update copyright years.  Fix comments.
29464         Fix indentation.
29465
29466 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
29467
29468         * builtin-types.def (BT_INT128): New primitive type.
29469         (BT_UINT128): Likewise.
29470         * c-common.c (c_common_r): Add __int128 keyword.
29471         (c_common_type_for_size): Handle __int128.
29472         (c_common_type_for_mode): Likewise.
29473         (c_common_signed_or_unsigned_type): Likewise.
29474         (c_common_nodes_and_builtins): Add builtin type
29475         if target supports 128-bit integer scalar.
29476         * c-common.h (enum rid): Add RID_INT128.
29477         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
29478         if target supports 128-bit integer scalar.
29479         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
29480         (finish_declspecs): Likewise.
29481         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
29482         (c_token_starts_declspecs): Likewise.
29483         (c_parser_declspecs): Likewise.
29484         (c_parser_attributes): Likewise.
29485         (c_parser_objc_selector): Likewise.
29486         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
29487         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
29488         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
29489         * tree.c (make_or_reuse_type): Likewise.
29490         (make_unsigned_type): Likewise.
29491         (build_common_tree_nodes_2): Likewise.
29492         * tree.h (enum integer_type_kind): Add itk_int128 and
29493         itk_unsigned_int128.
29494         (int128_integer_type_node): New define.
29495         (int128_unsigned_type_node): New define.
29496         * doc/extend.texi: Add documentation about __int128 type.
29497
29498 2010-05-26  Richard Guenther  <rguenther@suse.de>
29499
29500         * tree-ssa-sccvn.c (copy_nary): Adjust.
29501         (copy_phis): Rename to ...
29502         (copy_phi): ... this.  Adjust.
29503         (copy_references): Rename to ...
29504         (copy_reference): ... this.  Adjust.
29505         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
29506         result into the valid table.
29507
29508 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
29509
29510         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
29511         insn-config.h, insn-codes.h, recog.h, and optabs.h.
29512
29513 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29514
29515         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
29516
29517 2010-05-26  Richard Guenther  <rguenther@suse.de>
29518
29519         * opts.c (common_handle_option): Handle OPT_Ofast.
29520
29521 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
29522
29523         * diagnostic.c: Don't include opts.h.
29524         (permissive_error_option): Define.
29525         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
29526         for classify_diagnostic.  Don't use memset for
29527         classify_diagnostic.  Initialize new and recently added fields.
29528         (diagnostic_classify_diagnostic): Use context->n_opts instead of
29529         N_OPTS.
29530         (diagnostic_report_diagnostic): Pass context parameter to
29531         diagnostic_report_warnings_p.  Use option_enabled and option_name
29532         hooks from context.
29533         (emit_diagnostic): Use permissive_error_option.
29534         (permerror): Likewise.
29535         * diagnostic.h: Don't include options.h.
29536         (struct diagnostic_context): Add n_opts, opt_permissive,
29537         inhibit_warnings, warn_system_headers, option_enabled and
29538         option_name fields.  Change classify_diagnostic to a pointer.
29539         * opts-diagnostic.h: New file.
29540         * opts.c: Include opts-diagnostic.h.
29541         (common_handle_option): Set global_dc fields for -Wfatal-errors,
29542         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
29543         (option_name): New function.
29544         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
29545         (c_common_handle_option): Set global_dc->permissive for
29546         -fpermissive.
29547         * c-common.c (c_cpp_error): Save and restore
29548         global_dc->warn_system_headers, not variable warn_system_headers.
29549         * toplev.c: Include opts-diagnostic.h.
29550         (general_init): Update call to diagnostic_initialize.  Set
29551         global_dc->show_column, global_dc->option_enabled and
29552         global_dc->option_name.
29553         (process_options): Don't set global_dc fields here.
29554         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
29555         (diagnostic.o, opts.o, toplev.o): Update dependencies.
29556
29557 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
29558
29559         * config/picochip/picochip.md (movsi): Split a movsi from a
29560         const after reload.
29561
29562 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29563
29564         * ggc-zone.c: Update copyright year.
29565         (poison_region): Mark memory for Valgrind as undefined before
29566         memset () call and inaccessible afterwards.
29567         (ggc_pch_total_size): Change type of i to int.
29568
29569 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29570
29571         * ggc-common.c (ggc_free_overhead): Allow empty slot.
29572
29573 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29574
29575         * ggc-common.c: Update copyright year.
29576         (ggc_rlimit_bound): Remove prototype.  Compile only if
29577         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
29578         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
29579         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
29580         (ggc_min_heapsize_heuristic): Likewise.
29581
29582 2010-05-26  Richard Guenther  <rguenther@suse.de>
29583
29584         PR rtl-optimization/44164
29585         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
29586         no-common access-path disambiguation.
29587         (indirect_ref_may_alias_decl_p): Adjust.
29588         (indirect_refs_may_alias_p): Likewise.
29589         (refs_may_alias_p_1): Likewise.
29590
29591 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
29592
29593         * c-typeck.c: Do not include expr.h.
29594
29595 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
29596
29597         * rtl.h (decl_default_tls_model): Move prototype from here...
29598         * output.h: ...to here.
29599         * c-decl.c: Do not include rtl.h.
29600         * c-pragma.c: Likewise.
29601         * c-parser.c: Likewise.
29602         * c-gimplify.c: Likewise.  And also not hard-reg-set.
29603         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
29604         FIXME note for it.  Add a FIXME note for expr.h.
29605         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
29606         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
29607         defined.
29608
29609 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
29610
29611         PR target/44199
29612         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
29613         or total_size is larger than red zone size for non-V4 ABI, emit a
29614         stack_tie resp. frame_tie insn before stack pointer restore.
29615         * config/rs6000/rs6000.md (frame_tie): New insn.
29616
29617 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
29618
29619         * function.h (struct function): Add can_throw_non_call_exceptions bit.
29620         * lto-streamer-in.c (input_function): Stream it in.
29621         * lto-streamer-out.c (output_function): Stream it out.
29622         * function.c (allocate_struct_function): Set it.
29623         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
29624         for flag_non_call_exceptions.
29625         * cfgbuild.c (control_flow_insn_p): Likewise.
29626         (make_edges): Likewise.
29627         * cfgexpand.c (expand_stack_alignment): Likewise.
29628         * combine.c (distribute_notes): Likewise.
29629         * cse.c (cse_extended_basic_block): Likewise.
29630         * except.c (insn_could_throw_p): Likewise.
29631         * gcse.c (simple_mem): Likewise.
29632         * ipa-pure-const.c (check_call): Likewise.
29633         (check_stmt ): Likewise.
29634         * lower-subreg.c (lower-subreg.c): Likewise.
29635         * optabs.c (emit_libcall_block): Likewise.
29636         (prepare_cmp_insn): Likewise.
29637         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
29638         * postreload.c (rest_of_handle_postreload): Likewise.
29639         * reload1.c (reload_as_needed): Likewise.
29640         (emit_input_reload_insns): Likewise.
29641         (emit_output_reload_insns): Likewise.
29642         (fixup_abnormal_edges): Likewise.
29643         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
29644         * store-motion.c (find_moveable_store): Likewise.
29645         * tree-eh.c (stmt_could_throw_p): Likewise.
29646         (tree_could_throw_p): Likewise.
29647         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
29648         * config/arm/arm.c (arm_expand_prologue): Likewise.
29649         (thumb1_expand_prologue): Likewise.
29650         * config/rx/rx.md (cbranchsf4): Likewise.
29651         (cmpsf): Likewise.
29652         * config/s390/s390.c (s390_emit_prologue): Likewise.
29653         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
29654         (inline_forbidden_into_p): New predicate.
29655         (expand_call_inline): Use it to forbid inlining.
29656         (tree_can_inline_p): Likewise.
29657
29658 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
29659
29660         * config/i386/i386-c.c: Do not include rtl.h.
29661         * config/i386/t-i386: Update dependencies.
29662
29663 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
29664
29665         * attribs.c: Do not include rtl.h.
29666         * Makefile.in: Update dependencies.
29667
29668 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
29669
29670         * double-int.h (double_int_and): New.
29671         * combine.c (try_combine): Clean up, use double_int_* and
29672         immed_double_int_const functions.
29673
29674 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29675
29676         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
29677         stderr to /dev/null instead of grep -q.
29678         * configure: Regenerate.
29679
29680 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
29681
29682         * Makefile.in (EXCEPT_H): Fix typo.
29683
29684 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
29685
29686         * ira-build.c (update_conflict_hard_reg_costs): New.
29687         (ira_build): Call update_conflict_hard_reg_costs.
29688
29689 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
29690
29691         PR debug/41371
29692         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
29693         ENABLE_CHECKING.
29694         (intersect_loc_chains): Walk the s2var's loc_chain together
29695         with s1node chain as long as the locations are equal, don't
29696         call find_loc_in_1pdv in that case.
29697
29698         PR debug/42801
29699         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
29700         (copy_bind_expr): ... instead of here.
29701         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
29702         if the block hasn't been remapped.
29703         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
29704         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
29705
29706 2010-05-25  Richard Guenther  <rguenther@suse.de>
29707
29708         PR middle-end/44069
29709         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
29710         out-of-bounds array accesses.
29711
29712 2010-05-25  Richard Guenther  <rguenther@suse.de>
29713
29714         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
29715         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
29716         (run_gcc): Re-organize to make cleanup easier.
29717
29718 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
29719
29720         * config/s390/s390.c (optimization_options): Fix and move the
29721         flag_prefetch_loop_arrays override ...
29722         (override_options): ... here.
29723
29724 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
29725
29726         * diagnostic.c: Don't include plugin.h.
29727         (diagnostic_report_diagnostic): Don't handle plugins specially
29728         here.  Pass context to internal_error callback.
29729         * diagnostic.h (struct diagnostic_context): Add context parameter
29730         to internal_error callback.
29731         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
29732         * plugin.h (struct diagnostic_context): Declare.
29733         (warn_if_plugins, plugins_internal_error_function): Declare.
29734         * toplev.c (general_init): Set global_dc->internal_error.
29735         * Makefile.in (diagnostic.o): Update dependencies.
29736
29737 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
29738
29739         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
29740         * config/rs6000/t-darwin64: New.
29741         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
29742         build crt2.
29743
29744 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
29745
29746         PR 44203
29747         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
29748         match the original (and intended) behaviour before r159557.  This
29749         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
29750         in two ways.
29751
29752 2010-05-25  Richard Guenther  <rguenther@suse.de>
29753
29754         * doc/invoke.texi: Document -Ofast.
29755         * target.h (struct gcc_target): Add handle_ofast.
29756         * target-def.h (TARGET_HANDLE_OFAST): Add.
29757         (TARGET_INITIALIZER): Adjust.
29758         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
29759         * common.opt (Ofast): Add.
29760
29761 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
29762
29763         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
29764         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
29765
29766 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
29767
29768         PR target/43610
29769         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
29770         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
29771         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
29772         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
29773
29774 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
29775
29776         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
29777         DW_OP_minus with negated offset instead of DW_OP_plus.
29778         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
29779
29780 2010-05-25  Wei Guozhi  <carrot@google.com>
29781
29782         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
29783         tst instruction and a new alternative.
29784         * config/arm/constraints.md (Pu): New constraint.
29785
29786 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
29787
29788         * function.c (assign_stack_local_1): Initialize variable
29789         to avoid warning when bootstrapping at -O3.
29790
29791 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
29792
29793         * configure.ac (all_lang_makefiles): Remove everything related to it.
29794         * configure: Regenerate.
29795         * Makefile.in: Fix reference to ada Make-lang.in.
29796         Remove support for LANG_MAKEFILES.
29797
29798 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
29799             Sandra Loosemore  <sandra@codesourcery.com>
29800
29801         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
29802         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
29803         description.  Add arm_neon_fp16_ok.
29804         (Add Options): Add arm_neon and arm_neon_fp16.
29805
29806 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
29807
29808         * diagnostic.c: Don't include flags.h.
29809         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
29810         context parameters.  Check flags in the context passed as a parameter.
29811         (diagnostic_build_prefix): Add context parameter.  Check
29812         show_column flag in context.
29813         (diagnostic_action_after_output): Check fatal_errors flag in context.
29814         (diagnostic_report_current_module): Check show_column flag in context.
29815         (default_diagnostic_starter): Update call to
29816         diagnostic_build_prefix.
29817         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
29818         (emit_diagnostic): Pass context to permissive_error_kind.
29819         (permerror): Pass context to permissive_error_kind.
29820         * diagnostic.h (struct diagnostic_context): Add show_column,
29821         pedantic_errors, permissive and fatal_errors fields.
29822         (diagnostic_build_prefix): Update prototype.
29823         * langhooks.c
29824         * toplev.c (process_options): Set flags in global_dc from
29825         flag_show_column, flag_pedantic_errors, flag_permissive,
29826         flag_fatal_errors.
29827         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
29828         to diagnostic_build_prefix.
29829         * Makefile.in (diagnostic.o): Update dependencies.
29830
29831 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
29832
29833         * config/i386/ia32intrin.h (__crc32q): Define only if
29834         __SSE4_2__ is defined.
29835
29836 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
29837
29838         PR target/44132
29839         PR middle-end/43602
29840         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
29841         DECL_VISIBILITY_SPECIFIED.
29842         (emutls_decl): Set DECL_PRESERVE_P and copy
29843         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
29844         (emutls_finalize_control_var): New callback.
29845         (emutls_finish): Finalize emutls control variables.
29846         * toplev.c (compile_file): Move the call to emutls_finish ()
29847         before varpool_assemble_pending_decls ().
29848
29849 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
29850
29851         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
29852         added to the preprocessor condition.
29853
29854 2010-05-24  Paul Brook  <paul@codesourcery.com>
29855
29856         * gengtype-lex.l: Add HARD_REG_SET.
29857         * expr.c (expand_expr_real_1): Record writes to hard registers.
29858         * function.c (rtl_data): Add asm_clobbers.
29859         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
29860         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
29861         Use crtl->asm_clobbers.
29862
29863 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
29864
29865         * doc/makefile.texi (Makefile): Mention stages 'profile'
29866         and 'feedback' for profiledbootstrap.
29867
29868 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
29869
29870         PR target/44245
29871         * config/i386/i386.c (def_builtin): Properly check
29872         OPTION_MASK_ISA_64BIT.
29873
29874 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
29875
29876         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
29877         typedefs with different but compatible types.  Allow duplicate
29878         typedefs with the same type except for pedantic non-C1X, but give
29879         warning for variably modified types.
29880         * c-typeck.c (tagged_types_tu_compatible_p,
29881         function_types_compatible_p, type_lists_compatible_p,
29882         comptypes_internal): Add parameter different_types_p; set
29883         *different_types_p for different but compatible types.  All
29884         callers changed.
29885         (comptypes_check_different_types): New.
29886         * c-tree.h (comptypes_check_different_types): Declare.
29887
29888 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
29889
29890         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
29891         * jump.c: Include basic-block.h.
29892         * profile.c: Likewise.
29893         * tree-profile.c: Likewise.
29894         * coverage.c: Likewise.
29895         * basic-block.h (optimize_function_for_size_p): Move to function.h.
29896         (optimize_function_for_speed_p): Likewise.
29897         * function.h (optimize_function_for_size_p,
29898         optimize_function_for_speed_p): Moved here from basic-block.h.
29899         * Makefile.in: Update dependencies.
29900
29901 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
29902
29903         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
29904         before calling make; allow override through $MAKE.
29905         * doc/invoke.texi (Optimize Options): Document override.
29906
29907 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
29908
29909         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
29910         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
29911         (rs6000_mode_dependent_address_ptr): Make static.
29912         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
29913         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
29914         Remove.
29915
29916 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
29917
29918         PR target/43869
29919         * config/i386/i386.c: Make sure that the correct regparm is passed.
29920
29921 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
29922
29923         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
29924         * sbitmap.c: ...to here to internalize sbitmap element access.
29925         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
29926         Explain why basic-block.h is included.
29927         * function.h: Include tm.h for CUMULATIVE_ARGS.
29928         * Makefile.in: Update dependencies.
29929
29930 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
29931
29932         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
29933         New core types.
29934         * sbitmap.h (struct sbitmap_def): Do not typedef here.
29935         * sbitmap.c: Include sbitmap.h.
29936         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
29937         hard-reg-set.h.  Split everything related to regsets out from here...
29938         * regset.h: ...to here.  New file.
29939         * df.h: Include regset.h and sbitmap.h.
29940         * tree-flow.h: Likewise.
29941         * cfgloop.h: Likewise.
29942         * except.h: Do not include sbitmap.h.  Include hashtab.h.
29943         * cgraph.h: Include vec.h and function.h.
29944         * reload.h (struct insn_chain): Change types of live_throughout
29945         and dead_or_set from regset_head to bitmap_head.
29946         (compute_use_by_pseudos): Be defined also if regset.h is not included.
29947         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
29948         spilled_regs from regset_head to bitmap_head to avoid dependency
29949         in regset.h.
29950         * sel-sched-ir.h: Include regset.h.
29951         * reload.c: Include df.h before reload.h.
29952         * caller-save.c: Likewise.
29953         * reload1.c: Likewise.
29954         * ira.c: Likewise.
29955         (mark_elimination): Update type of r to bitmap, consistent with
29956         DF_LR_IN.
29957         * dominance.c: Include bitmap.h.
29958         * modulo-sched.c: Include df.h.
29959         * cfganal.c: Include bitmap.h and sbitmap.h.
29960         * cfgbuild.c: Include sbitmap.h.
29961         * lcm.c: Include sbitmap.h.
29962         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
29963         * domwalk.c: Include sbitmap.h, exclude ggc.h.
29964         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
29965         * cselib.c: Include bitmap.h.
29966         * tree-optimize.c: Include regset.h.
29967         * stmt.c: Include bitmap.h.
29968         * Makefile.in: Update dependencies.
29969
29970 2010-05-22  Jan Hubicka  <jh@suse.cz>
29971
29972         * cgraph.h (struct varpool_node): Add same_comdat_group.
29973         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
29974         pointer.
29975         (output_varpool): Update call of lto_output_varpool_node.
29976         (input_varpool): Read same_comdat_group pointer.
29977         (input_varpool_1): Fixup same_comdat_group pointer.
29978         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
29979         group is needed, all are.
29980         * varpool.c (varpool_remove_node): Remove node from same comdat group
29981         linklist too.
29982         (varpool_analyze_pending_decls): Walk same comdat groups.
29983
29984 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
29985
29986         * rtl.h (union rtunion_def): Remove rt_bit member.
29987         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
29988         * print-rtl (print_rtx): Do not print the member.
29989         * gengtype.c (adjust_field_rtx_def): Do not handle it.
29990         * gengenrtl.c (type_from_format): Likewise.
29991         (accessor_from_format): Likewise.
29992
29993 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
29994
29995         * dbgcnt.c: Include toplev.h instead of errors.h.
29996         * ira-emit.c: Don't include errors.h.
29997         * ira.c: Include toplev.h instead of errors.h.
29998         * lto-compress.c: Include toplev.h instead of errors.h.
29999         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
30000         ira.o, dbgcnt.o): Update dependencies.
30001
30002 2010-05-22  Richard Guenther  <rguenther@suse.de>
30003
30004         * gimple.c (gimple_types_compatible_p): Check type qualifications
30005         before merging pointer to complete and pointer to incomplete type.
30006         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
30007         we use our own resolution algorithm.  The gold linker plugin
30008         doesn't do the job we want it to do here.
30009
30010 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
30011
30012         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
30013         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
30014         (sparc_mode_dependent_address_p): New function.
30015
30016 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
30017
30018         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
30019
30020         * timevar.c: Do not include any core headers.
30021         (timevar_print): De-i18n-ize.
30022         (print_time): Likewise.
30023         * timevar.h (timevar_push, timevar_pop): Make inline functions.
30024
30025 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
30026
30027         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
30028         langhooks-def.h.
30029         (diagnostic_initialize): Initialize x_data not last_function.
30030         (diagnostic_report_current_function): Move to tree-diagnostic.c.
30031         (default_diagnostic_starter): Call
30032         diagnostic_report_current_module not
30033         diagnostic_report_current_function.
30034         (diagnostic_report_diagnostic): Initialize x_data not
30035         abstract_origin.
30036         (verbatim): Likewise.
30037         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
30038         x_data.
30039         (struct diagnostic_context): Change last_function to x_data.
30040         (diagnostic_auxiliary_data): Replace with
30041         diagnostic_context_auxiliary_data and
30042         diagnostic_info_auxiliary_data.
30043         (diagnostic_last_function_changed, diagnostic_set_last_function,
30044         diagnostic_report_current_function): Move to tree-diagnostic.h.
30045         (print_declaration, dump_generic_node, print_generic_stmt,
30046         print_generic_stmt_indented, print_generic_expr,
30047         print_generic_decl, debug_c_tree, dump_omp_clauses,
30048         print_call_name, debug_generic_expr, debug_generic_stmt,
30049         debug_tree_chain, default_tree_printer): Move to
30050         tree-pretty-print.h.
30051         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
30052         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
30053         gimple-pretty-print.h.
30054         * pretty-print.c: Don't include tree.h
30055         (pp_base_format): Don't handle %K here.
30056         (pp_base_tree_identifier): Move to tree-pretty-print.c.
30057         * pretty-print.h (text_info): Change abstract_origin to x_data.
30058         (pp_tree_identifier, pp_unsupported_tree,
30059         pp_base_tree_identifier): Move to tree-pretty-print.h.
30060         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
30061         tree-pretty-print.h: New files.
30062         * tree-pretty-print.c: Include tree-pretty-print.h.
30063         (percent_K_format): New.  Moved from pretty-print.c.
30064         (pp_base_tree_identifier): Move from pretty-print.c.
30065         * c-objc-common.c: Include tree-pretty-print.h.
30066         (c_tree_printer): Handle %K here.
30067         * langhooks.c: Include tree-diagnostic.h.
30068         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
30069         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
30070         (default_tree_printer): Handle %K using percent_K_format.
30071         (general_init): Use default_tree_diagnostic_starter.
30072         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
30073         (free_lang_data): Use default_tree_diagnostic_starter.
30074         * c-pretty-print.c: Include tree-pretty-print.h.
30075         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
30076         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
30077         * dwarf2out.c: Include tree-pretty-print.h.
30078         * except.c: Include tree-pretty-print.h.
30079         * gimple-pretty-print.c: Include tree-pretty-print.h and
30080         gimple-pretty-print.h.
30081         * gimplify.c: Include tree-pretty-print.h.
30082         * graphite-poly.c: Include tree-pretty-print.h and
30083         gimple-pretty-print.h.
30084         * ipa-cp.c: Include tree-pretty-print.h.
30085         * ipa-inline.c: Include gimple-pretty-print.h.
30086         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
30087         * ipa-pure-const.c: Include gimple-pretty-print.h.
30088         * ipa-struct-reorg.c: Include tree-pretty-print.h and
30089         gimple-pretty-print.h.
30090         * ipa-type-escape.c: Include tree-pretty-print.h.
30091         * print-rtl.c: Include tree-pretty-print.h.
30092         * print-tree.c: Include gimple-pretty-print.h.
30093         * sese.c: Include tree-pretty-print.h.
30094         * tree-affine.c: Include tree-pretty-print.h.
30095         * tree-browser.c: Include tree-pretty-print.h.
30096         * tree-call-cdce.c: Include gimple-pretty-print.h.
30097         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
30098         * tree-chrec.c: Include tree-pretty-print.h.
30099         * tree-data-ref.c: Include tree-pretty-print.h and
30100         gimple-pretty-print.h.
30101         * tree-dfa.c: Include tree-pretty-print.h.
30102         * tree-if-conv.c: Include tree-pretty-print.h and
30103         gimple-pretty-print.h.
30104         * tree-inline.c: Include tree-pretty-print.h.
30105         * tree-into-ssa.c: Include tree-pretty-print.h and
30106         gimple-pretty-print.h.
30107         * tree-nrv.c: Include tree-pretty-print.h.
30108         * tree-object-size.c: Include tree-pretty-print.h and
30109         gimple-pretty-print.h.
30110         * tree-outof-ssa.c: Include tree-pretty-print.h and
30111         gimple-pretty-print.h.
30112         * tree-parloops.c: Include tree-pretty-print.h and
30113         gimple-pretty-print.h.
30114         * tree-predcom.c: Include tree-pretty-print.h and
30115         gimple-pretty-print.h.
30116         * tree-scalar-evolution.c: Include tree-pretty-print.h and
30117         gimple-pretty-print.h.
30118         * tree-sra.c: Include tree-pretty-print.h.
30119         * tree-ssa-address.c: Include tree-pretty-print.h.
30120         * tree-ssa-alias.c: Include tree-pretty-print.h.
30121         * tree-ssa-ccp.c: Include tree-pretty-print.h and
30122         gimple-pretty-print.h.
30123         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
30124         * tree-ssa-copy.c: Include tree-pretty-print.h and
30125         gimple-pretty-print.h.
30126         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
30127         * tree-ssa-dce.c: Include tree-pretty-print.h and
30128         gimple-pretty-print.h.
30129         * tree-ssa-dom.c: Include tree-pretty-print.h and
30130         gimple-pretty-print.h.
30131         * tree-ssa-dse.c: Include gimple-pretty-print.h.
30132         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
30133         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
30134         * tree-ssa-live.c: Include tree-pretty-print.h and
30135         gimple-pretty-print.h.
30136         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
30137         gimple-pretty-print.h.
30138         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
30139         gimple-pretty-print.h.
30140         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
30141         gimple-pretty-print.h.
30142         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
30143         gimple-pretty-print.h.
30144         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
30145         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
30146         * tree-ssa-operands.c: Include tree-pretty-print.h and
30147         gimple-pretty-print.h.
30148         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
30149         gimple-pretty-print.h.
30150         * tree-ssa-pre.c: Include tree-pretty-print.h and
30151         gimple-pretty-print.h.
30152         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
30153         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
30154         gimple-pretty-print.h.
30155         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
30156         gimple-pretty-print.h.
30157         * tree-ssa-sink.c: Include gimple-pretty-print.h.
30158         * tree-ssa-ter.c: Include tree-pretty-print.h and
30159         gimple-pretty-print.h.
30160         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
30161         * tree-ssa.c: Include tree-pretty-print.h and
30162         gimple-pretty-print.h.
30163         * tree-stdarg.c: Include gimple-pretty-print.h.
30164         * tree-switch-conversion.c: Include gimple-pretty-print.h.
30165         * tree-tailcall.c: Include tree-pretty-print.h and
30166         gimple-pretty-print.h.
30167         * tree-vect-data-refs.c: Include tree-pretty-print.h and
30168         gimple-pretty-print.h.
30169         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
30170         gimple-pretty-print.h.
30171         * tree-vect-loop.c: Include tree-pretty-print.h and
30172         gimple-pretty-print.h.
30173         * tree-vect-patterns.c: Include gimple-pretty-print.h.
30174         * tree-vect-slp.c: Include tree-pretty-print.h and
30175         gimple-pretty-print.h.
30176         * tree-vect-stmts.c: Include tree-pretty-print.h and
30177         gimple-pretty-print.h.
30178         * tree-vectorizer.c: Include tree-pretty-print.h.
30179         * tree-vrp.c: Include tree-pretty-print.h and
30180         gimple-pretty-print.h.
30181         * value-prof.c: Include tree-pretty-print.h and
30182         gimple-pretty-print.h.
30183         * var-tracking.c: Include tree-pretty-print.h.
30184         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
30185         (tree-diagnostic.o): New dependencies.
30186         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
30187         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
30188         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
30189         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
30190         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
30191         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
30192         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
30193         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
30194         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
30195         tree-ssa-address.o, tree-ssa-loop-niter.o,
30196         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
30197         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
30198         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
30199         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
30200         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
30201         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
30202         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
30203         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
30204         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
30205         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
30206         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
30207         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
30208         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
30209         tree-switch-conversion.o, var-tracking.o, value-prof.o,
30210         cfgexpand.o, pretty-print.o): Update dependencies.
30211
30212 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
30213
30214         * tree-ssa-structalias.c: Remove tm_p.h from include.
30215
30216 2010-05-21  Jeff Law  <law@redhat.com>
30217
30218         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
30219
30220 2010-05-21  Jason Merrill  <jason@redhat.com>
30221
30222         * tree-eh.c (cleanup_is_dead_in): New.
30223         (lower_try_finally): Don't generate a dead cleanup region.
30224         (lower_cleanup): Likewise.
30225
30226 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
30227
30228         PR debug/44223
30229         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
30230         unchain each use from the cyclic next_regno_use chain first.
30231
30232 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
30233
30234         * real: Do not include gmp.h, mpfr.h, and mpc.h.
30235         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
30236         (real_value_negate, real_value_abs): New prototypes.
30237         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
30238         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
30239         new include file for interface between MPFR and REAL_VALUE_TYPE.
30240         * real.c: Include realmpfr.h.
30241         (real_arithmetic2): Remove legacy function.
30242         (real_value_negate): New.
30243         (real_value_abs): New.
30244         (mfpr_from_real, real_from_mpfr): Move from here...
30245         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
30246         * builtins.c: Include realmpfr.h.
30247         * fold-const.c: Include realmpfr.h.
30248         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
30249         (fold_negate_const): Likewise.
30250         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
30251         * toplev.c: Include realmpfr.h.
30252         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
30253         and real_value_negate.
30254         * fixed-value.c (check_real_for_fixed_mode): Likewise.
30255         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
30256         (vfp3_const_double_index): Likewise.
30257         (arm_print_operand): Likewise.
30258         * Makefile.in: Update dependencies.
30259
30260 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30261
30262         * config/s390/s390.c (override_options): Increase the default
30263         of max-completely-peel-times.
30264
30265 2010-05-21  Julian Brown  <julian@codesourcery.com>
30266             Mark Mitchell  <mark@codesourcery.com>
30267
30268         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
30269         sibling calls for Thumb-1.
30270         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
30271         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
30272         Thumb-2.
30273         (*call_insn, *call_value_insn): Don't use for Thumb-2.
30274         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
30275         for Thumb-2.
30276         (return): New expander.
30277         (*arm_return): New name for ARM return insn.
30278         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
30279
30280 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
30281
30282         * config.gcc (sparc64-*-rtems*): New target.
30283
30284 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
30285
30286         * tree.c (build_function_decl_skip_args): Fix grammar.
30287         (build_function_type_list_1): Fix typos, adjust formatting.
30288
30289 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
30290
30291         * tree.h: Include real.h and fixed-value.h as basic datatypes.
30292         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
30293         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
30294         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
30295         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
30296         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
30297         tree-pretty-print.c, tree-loop-distribution.c,
30298         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
30299         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
30300         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
30301         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
30302         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
30303         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
30304         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
30305         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
30306         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
30307         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
30308         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
30309         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
30310         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
30311         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
30312         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
30313         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
30314         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
30315         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
30316         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
30317         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
30318         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
30319         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
30320         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
30321         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
30322         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
30323         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
30324         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
30325         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
30326         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
30327         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
30328         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
30329         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
30330         config/score/score7.c, config/score/score.c, config/arm/arm.c,
30331         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
30332         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
30333         config/bfin/bfin.c: Clean up redundant includes.
30334         * Makefile.in: Update accordingly.
30335
30336 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
30337
30338         PR middle-end/44204
30339         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
30340         statement has no arguments.
30341
30342 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
30343
30344         PR/44139
30345         * varasm.c (emutls_decl): Merge attributes to new decl.
30346
30347 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
30348
30349         PR middle-end/44101
30350         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
30351         around the uniquized constructor if its type requires a conversion.
30352
30353 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
30354
30355         PR debug/44205
30356         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
30357         at -O0 goto_locus of any of the incoming edges differs from
30358         goto_locus of outgoing edge, or gimple_location of any of the
30359         labels differs.
30360
30361 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
30362
30363         * ira.c (ira_non_ordered_class_hard_regs): Define.
30364         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
30365         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
30366         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
30367         cost of unaligned hard regs when allocating multi-reg pseudos.
30368
30369 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
30370
30371         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
30372         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
30373         for TARGET_NO_FLOAT.
30374         * config/mips/mips.c (mips_file_start): Expand conditional expression
30375         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
30376         (mips_override_options): Move -mno-float override -msoft-float and
30377         -mhard-float.
30378         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
30379         Condition(TARGET_SUPPORTS_NO_FLOAT).
30380         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
30381         __mips_no_float here.
30382         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
30383         (TARGET_SUPPORTS_NO_FLOAT): Define.
30384         * config/mips/sdemtk.opt: Delete.
30385
30386 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
30387
30388         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
30389
30390 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
30391
30392         PR target/43733
30393         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
30394         * configure: Regenerate.
30395         * config.in: Regenerate.
30396         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
30397         instead of sahf only for 64bit targets.
30398
30399 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
30400
30401         PR debug/44178
30402         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
30403         setup_ref_regs for DEBUG_INSNs.
30404
30405 2010-05-20  Jan Hubicka  <jh@suse.cz>
30406
30407         PR middle-end/44197
30408         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
30409
30410 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
30411
30412         PR bootstrap/43870
30413         * df-scan.c (df_ref_compare): Stabilize sort.
30414
30415 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
30416
30417         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
30418         argument.  Don't use DW_OP_piece if offset is non-zero,
30419         put offset into second DW_OP_bit_piece argument.
30420         (dw_sra_loc_expr): Adjust callers.  For memory expressions
30421         compute offset.
30422
30423 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
30424
30425         PR target/44202
30426         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
30427         settings for 16-bit-constant "addo" alternative.
30428
30429 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
30430
30431         * config/mips/mips-dsp.md (add<DSPV:mode>3,
30432         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
30433
30434         PR target/43764
30435         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
30436         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
30437         Use it.
30438
30439 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
30440
30441         * diagnostic.c (FLOAT, FFS): Don't undefine.
30442         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
30443         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
30444         include ordering.
30445
30446 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
30447
30448         * combine.c (propagate_for_debug): Call make_compound_operation
30449         on the source value.
30450         (try_combine): When implementing a split chosen by find_split_point,
30451         either copy i2src or set it to null.  Assert that i2src is not null
30452         before substituting into CALL_INSN_FUNCTION_USAGE.
30453
30454 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
30455
30456         * double-int.h (double_int_ior): New function.
30457         * tree.h (build_int_cst_wide_type): Remove.
30458         * tree.c (build_int_cst_wide_type): Remove.
30459         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
30460         of build_int_cst_wide_type.
30461         * stor-layout.c (set_sizetype): (Ditto.).
30462         * dojump.c (do_jump): Use build_int_cstu instead of
30463         build_int_cst_wide_type.
30464
30465 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
30466
30467         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
30468         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
30469         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
30470         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
30471         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
30472         propagate the 'data' argument to copy_tree_r.
30473         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
30474         Propagate 'data' argument to walk_tree.
30475         (copy_if_shared): New function.
30476         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
30477         (unmark_visited): New function.
30478         (unshare_body): Call copy_if_shared instead of doing it manually.
30479         (unvisit_body): Call unmark_visited instead of doing it manually.
30480
30481 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
30482
30483         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
30484         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
30485         * hooks.c: Likewise.
30486         * target-def.h (TARGET_FOLD_BUILTIN): Define to
30487         hook_tree_tree_int_treep_bool_null.
30488         * target.h (struct gcc_target): Update signature of fold_builtin
30489         field.
30490         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
30491         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
30492         instead of the call expression.
30493         (fold_builtin_call_array): Pass n and argarray directly.
30494         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
30495         consing a list.
30496         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
30497         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
30498         `i' and use it in place of `arity'.
30499         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
30500         Dereference `args' directly.
30501         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
30502
30503 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30504
30505         * doc/sourcebuild.texi (Effective-Target Keywords): Document
30506         3dnow, sse3, sse2.
30507         (Directives): Document optional dg-require-effective-target
30508         selector.
30509
30510 2010-05-19  Richard Guenther  <rguenther@suse.de>
30511
30512         PR lto/44196
30513         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
30514
30515 2010-05-19  Richard Guenther  <rguenther@suse.de>
30516
30517         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
30518         * common.opt (fwhopr=): New.
30519         * opts.c (common_handle_option): Handle OPT_fwhopr.
30520         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
30521         * collect2.c (main): Match -fwhopr*.
30522         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
30523         Execute ltrans stage in parallel when jobs is bigger than 1.
30524
30525 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30526
30527         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
30528         pentiumpro on Solaris 8/x86 with Sun as.
30529         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
30530         hidden alias bug.
30531         (gcc_cv_as_ix86_quad): Check for .quad directive.
30532         * configure: Regenerate.
30533         * config.in: Regenerate.
30534         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
30535
30536 2010-05-19  Martin Jambor  <mjambor@suse.cz>
30537
30538         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
30539         also for indirect edges.  Actual printing moved...
30540         (ipa_print_node_jump_functions_for_edge): ...here.
30541         (ipa_compute_jump_functions): Renamed to
30542         ipa_compute_jump_functions_for_edge and made static.
30543         (ipa_compute_jump_functions): New function.
30544         (make_edge_direct_to_target): Check if the number of arguments on
30545         the newly direct edge is the same as the number of parametrs of
30546         the callee.
30547         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
30548         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
30549         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
30550         analysis functions unconditionally, call the new
30551         ipa_analyze_params_uses on the node instead of every edge.
30552
30553 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
30554
30555         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
30556         to tree.
30557         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
30558         also checks for a constant int vs.  non-constant but
30559         loop-invariant steps.
30560         (find_or_create_group): Change the sort algorithm to only consider
30561         steps that are constant ints.
30562         (idx_analyze_ref): Adopt code to handle a tree instead of a
30563         HOST_WIDE_INT for step.
30564         (gather_memory_references_ref): Handle tree instead of int and be
30565         prepared to see a NULL_TREE.
30566         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
30567         prefetches if the step cannot be calculated at compile time.
30568         (issue_prefetch_ref): Issue prefetches for non-constant but
30569         loop-invariant steps.
30570
30571 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
30572
30573         Revert:
30574         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
30575
30576         * tree.h (build_call_list): Remove.
30577         * tree.c (build_call_list): Remove.
30578
30579 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
30580
30581         * tree.h (build_call_list): Remove.
30582         * tree.c (build_call_list): Remove.
30583
30584 2010-05-18  Jan Hubicka  <jh@suse.cz>
30585
30586         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
30587
30588 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
30589
30590         PR rtl-optimization/43332
30591         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
30592
30593 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
30594
30595         * tree.h (build_int_cstu): Implement as static inline.
30596         * tree.c (build_int_cstu): Remove function.
30597         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
30598         sign extended.
30599
30600 2010-05-18  Richard Guenther  <rguenther@suse.de>
30601
30602         PR lto/44143
30603         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
30604         (debug): Initialize from -save-temps.
30605         (collect_execute): Print command-line when verbose.
30606         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
30607         for ltrans invocation.  Produce -dumpbase flag again.
30608         (process_args): Remove.
30609         (main): Simplify.
30610         * collect2.c (maybe_run_lto_and_relink): Only pass object
30611         files to lto-wrapper.
30612         * gcc.c (LINK_COMMAND_SPEC): Likewise.
30613
30614 2010-05-18  Jan Hubicka  <jh@suse.cz>
30615
30616         * opts.c (decode_options): Do not disable whopr at ipa_cp.
30617         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
30618
30619 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
30620
30621         PR lto/44184
30622         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
30623         in a GIMPLE_ASM.
30624         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
30625         in a GIMPLE_ASM.
30626
30627 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
30628
30629         PR debug/41371
30630         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
30631         rtx_equal_p inline.
30632
30633 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
30634
30635         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
30636         lto-macho as lto_binary_reader.
30637
30638         * darwin.c (darwin_asm_named_section): Do not add assembler comment
30639         after .section directive; just print it before the directive instead.
30640
30641 2010-05-17  Jan Hubicka  <jh@suse.cz>
30642
30643         * cgraph.c (cgraph_create_virtual_clone): Only check
30644         versionable_function_p when not in wpa and checking is enabled.
30645         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
30646         there are no more functions to materialize.
30647
30648 2010-05-17  Jan Hubicka  <jh@suse.cz>
30649
30650         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
30651         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
30652         New functions.
30653         (output_cgraph): Call output_cgraph_opt_summary.
30654         (input_cgrpah): Call input_cgraph_opt_summary.
30655         (output_cgraph_opt_summary_p, output_node_opt_summary,
30656         input_node_opt_summary, input_cgraph_opt_section): New functions.
30657         * lto-section-in.c (lto_section_name): Add cgraphopt.
30658         * tree-inline.c (tree_function_versioning): Handle parm_num.
30659         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
30660         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
30661
30662 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
30663
30664         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
30665         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
30666         the insn to prefetch ratio heuristic to loops with known trip count.
30667
30668 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
30669
30670         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
30671         (schedule_prefetches): Do not generate a prefetch if the unroll factor
30672         is far from what is required by the prefetch.
30673
30674 2010-05-17  Jan Hubicka  <jh@suse.cz>
30675
30676         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
30677         (ipcp_estimate_growth): Likewise.
30678         (ipcp_const_param_count): Likewise.
30679         (ipcp_insert_stage): Likewise.
30680         * ipa-prop.c (visit_load_for_mod_analysis): New function.
30681         (visit_store_addr_for_mod_analysis): Set used flag.
30682         (ipa_detect_param_modifications): Set used flag for SSE params;
30683         update use of walk_stmt_load_store_addr_ops.
30684         (ipa_print_node_params): Print used flag.
30685         (ipa_write_node_info): Stream used flag.
30686         (ipa_read_node_info): Likewise.
30687         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
30688         (ipa_is_param_used): New function.
30689         (lto_ipa_fixup_call_notes): Remove unused declaration.
30690
30691 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30692
30693         PR target/44074
30694         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
30695         * configure: Regenerate.
30696         * config.in: Regenerate.
30697         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
30698         !HAVE_AS_IX86_REP_LOCK_PREFIX.
30699         Don't emit whitespace.
30700         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
30701         (*rep_movsi): Likewise.
30702         (*rep_movsi_rex64): Likewise.
30703         (*rep_movqi): Likewise.
30704         (*rep_movqi_rex64): Likewise.
30705         (*rep_stosdi_rex64): Likewise.
30706         (*rep_stossi): Likewise.
30707         (*rep_stossi_rex64): Likewise.
30708         (*rep_stosqi): Likewise.
30709         (*rep_stosqi_rex64): Likewise.
30710         (*cmpstrnqi_nz_1): Use {%;} after repz.
30711         (*cmpstrnqi_nz_rex_1): Likewise.
30712         (*cmpstrnqi_1): Likewise.
30713         (*cmpstrnqi_rex_1): Likewise.
30714         (*strlenqi_1): Use {%;} after repnz.
30715         (*strlenqi_rex_1): Likewise.
30716         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
30717         (*sync_compare_and_swap<mode>): Likewise.
30718         (sync_double_compare_and_swap<mode>): Likewise.
30719         (*sync_double_compare_and_swapdi_pic): Likewise.
30720         (sync_old_add<mode>): Likewise.
30721         (sync_add<mode>): Likewise.
30722         (sync_sub<mode>): Likewise.
30723         (sync_<code><mode>): Likewise.
30724
30725 2010-05-17  Martin Jambor  <mjambor@suse.cz>
30726
30727         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
30728         otr_token and polymorphic.
30729         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
30730         (cgraph_clone_edge): Copy the above fields.
30731         * tree.c (get_binfo_at_offset): New function.
30732         * tree.h (get_binfo_at_offset): Declare.
30733         * ipa-prop.h (enum jump_func_type): Added known_type jump function
30734         type, reordered items, updated comments.
30735         (union jump_func_value): Added base_type field, reordered fields.
30736         (enum ipa_lattice_type): Moved down in the file.
30737         (struct ipa_param_descriptor): New field polymorphic.
30738         (ipa_is_param_polymorphic): New function.
30739         * ipa-prop.c: Include gimple.h and gimple-fold.h.
30740         (ipa_print_node_jump_functions): Print known type jump functions.
30741         (compute_complex_pass_through): Renamed to...
30742         (compute_complex_assign_jump_func): this.
30743         (compute_complex_ancestor_jump_func): New function.
30744         (compute_known_type_jump_func): Likewise.
30745         (compute_scalar_jump_functions): Create known type and complex ancestor
30746         jump functions.
30747         (ipa_note_param_call): New parameter polymorphic, set the corresponding
30748         flag in the call note accordingly.
30749         (ipa_analyze_call_uses): Renamed to...
30750         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
30751         variable var only in the block where it is used.
30752         (ipa_analyze_virtual_call_uses): New function.
30753         (ipa_analyze_call_uses): Likewise.
30754         (combine_known_type_and_ancestor_jfs): Likewise.
30755         (update_jump_functions_after_inlining): Implemented handling of a
30756         number of new jump function types combination.
30757         (print_edge_addition_message): Removed.
30758         (make_edge_direct_to_target): New function.
30759         (try_make_edge_direct_simple_call): Likewise.
30760         (try_make_edge_direct_virtual_call): Likewise.
30761         (update_call_notes_after_inlining): Renamed to...
30762         (update_indirect_edges_after_inlining): this.  Moved edge creation for
30763         indirect calls to try_make_edge_direct_simple_call, also calls
30764         try_make_edge_direct_virtual_call for virtual calls.
30765         (ipa_print_node_params): Changed the header message.
30766         (ipa_write_jump_function): Stream also known type jump functions.
30767         (ipa_read_jump_function): Likewise.
30768         (ipa_write_indirect_edge_info): Stream new fields in
30769         cgraph_indirect_call_info.
30770         (ipa_read_indirect_edge_info): Likewise.
30771         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
30772         GIMPLE_FOLD_H.
30773
30774 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30775
30776         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
30777
30778 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
30779
30780         * tree.h (CALL_EXPR_ARGS): Delete.
30781         (call_expr_arglist): Delete.
30782         * tree.c (call_expr_arglist): Delete.
30783         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
30784         targetm.fold_builtin.
30785         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
30786         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
30787         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
30788         arglist parameter.  Use CALL_EXPR_ARG.
30789         (picochip_expand_builtin_3op): Likewise.
30790         (picochip_expand_builtin_2opvoid): Likewise.
30791         (picochip_expand_array_get): Likewise.
30792         (picochip_expand_array_put): Likewise.
30793         (picochip_expand_array_testport): Likewise.
30794         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
30795         rather than arglist.
30796         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
30797         CALL_EXPR_ARGS.
30798         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
30799         than TREE_VALUE and TREE_CHAIN.
30800         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
30801         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
30802         the arglist.
30803
30804 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
30805
30806         PR bootstrap/42347
30807         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
30808         to have no fallthru edge.
30809
30810         PR middle-end/44102
30811         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
30812         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
30813         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
30814         add BARRIER after previous bb if needed.
30815
30816 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
30817
30818         * tree.c (build_function_type_list_1): Remove bogus assert condition.
30819
30820 2010-05-17  Alan Modra  <amodra@gmail.com>
30821
30822         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
30823         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
30824         with copy_reg rtx param.
30825         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
30826         Correct cases where code for ABI_V4 did not initialise the reg
30827         used to access frame.  Also leave frame_reg_rtx as sp for large
30828         frames that save no regs.
30829
30830 2010-05-17  Martin Jambor  <mjambor@suse.cz>
30831
30832         PR middle-end/44133
30833         * tree-sra.c (create_access_replacement): New parameter rename, mark
30834         the replaement for renaming only when it is true.
30835         (get_access_replacement): Pass true in the rename parameter of
30836         create_access_replacement.
30837         (get_unrenamed_access_replacement): New function.
30838         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
30839         replacement declaration from it.
30840
30841 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
30842
30843         * function.c (try_fit_stack_local, add_frame_space): New static
30844         functions.
30845         (assign_stack_local_1): Use them.  Look for opportunities to use
30846         space previously wasted on alignment.
30847         * function.h (struct frame_space): New.
30848         (struct rtl_data): Add FRAME_SPACE_LIST member.
30849         * reload1.c (something_was_spilled): New static variable.
30850         (alter_reg): Set it.
30851         (reload): Test it in addition to testing if the frame size changed.
30852
30853 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
30854
30855         * config/s390/s390.c: Define sane prefetch settings and activate
30856         flag_prefetch_loop_arrays on -O3.
30857         * config/s390/s390.h: Declare that read can use write prefetch.
30858
30859 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
30860
30861         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
30862         build.
30863
30864 2010-05-16  Jan Hubicka  <jh@suse.cz>
30865
30866         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
30867         function body; do not check stdarg field of struct function.
30868
30869 2010-05-16  Jan Hubicka  <jh@suse.cz>
30870
30871         * cgraph.c (dump_cgraph_node): Dump versionable flag.
30872         * cgraph.h (cgraph_local_info): Add versionable flag.
30873         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
30874         (ipcp_versionable_function_p): Use it.
30875         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
30876         versionable flag.
30877
30878 2010-05-16  Jan Hubicka  <jh@suse.cz>
30879
30880         * cgraph.c (cgraph_clone_node): Take decl argument and insert
30881         clone into hash when it is different from orig.
30882         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
30883         * cgraph.h (cgraph_clone_node): Update prototype.
30884         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
30885         (lto_cgraph_encoder_delete): Delete body map.
30886         (lto_cgraph_encoder_size): Move to header.
30887         (lto_cgraph_encoder_encode_body_p,
30888         lto_set_cgraph_encoder_encode_body): New.
30889         (lto_output_node): Do not take written_decls argument; output clone_of
30890         pointer.
30891         (add_node_to): Add include_body_argument; call
30892         lto_set_cgraph_encoder_encode_body on master of the clone.
30893         (add_references): Update use of add_node_to.
30894         (compute_ltrans_boundary): Likewise.
30895         (output_cgraph): Do not create written_decls bitmap.
30896         (input_node): Take nodes argument; stream in clone_of correctly.
30897         (input_cgraph_1): Update use of input_node.
30898         * lto-streamer-out.c (lto_output): Use encoder info to decide
30899         what bodies to output.
30900         * ipa-inline.c (cgraph_clone_inlined_nodes,
30901         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
30902         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
30903         (lto_cgraph_encoder_size): Define here.
30904         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
30905         Declare.
30906
30907 2010-05-16  Richard Guenther  <rguenther@suse.de>
30908
30909         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
30910         -fipa-type-escape.
30911         * ipa-type-escape.c (gate_type_escape_vars): Run when
30912         -fipa-struct-reorg runs.
30913         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
30914         * common.opt (fipa-type-escape): Remove.
30915
30916 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
30917
30918         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
30919         (decode_options): Likewise.
30920         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
30921
30922 2010-05-16  Jan Hubicka  <jh@suse.cz>
30923
30924         * ipa.c (function_and_variable_visibility): Also bring local all
30925         aliases.
30926
30927 2010-05-16  Richard Guenther  <rguenther@suse.de>
30928
30929         * alias.c (nonoverlapping_memrefs_p): Remove use of
30930         IPA type-escape information.
30931
30932 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
30933
30934         * c-common.c (c_common_reswords): Add _Static_assert for C.
30935         * c-parser.c (c_token_starts_declaration,
30936         c_parser_next_token_starts_declaration,
30937         c_parser_static_assert_declaration_no_semi,
30938         c_parser_static_assert_declaration): New.
30939         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
30940         Handle static assertions if static_assert_ok.
30941         (c_parser_external_declaration, c_parser_declaration_or_fndef,
30942         c_parser_compound_statement_nostart, c_parser_label,
30943         c_parser_for_statement, c_parser_objc_methodprotolist,
30944         c_parser_omp_for_loop): All callers of
30945         c_parser_declaration_or_fndef changed.
30946         (c_parser_struct_declaration): Handle static assertions.
30947         (c_parser_compound_statement_nostart): Use
30948         c_parser_next_token_starts_declaration and
30949         c_token_starts_declaration to detect start of declarations.
30950         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
30951         Likewise.
30952
30953 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
30954
30955         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
30956         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
30957         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
30958         TARGET_FUNCTION_VALUE_REGNO_P): Define.
30959         (mmix_function_outgoing_value): Rename to...
30960         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
30961         (mmix_function_value_regno_p): Make static.
30962         (mmix_libcall_value): New function.
30963         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
30964         mmix_function_value_regno_p): Remove declaration.
30965
30966 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
30967
30968         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
30969         BUILT_IN_ALLOCA if stack checking is enabled.
30970
30971 2010-05-16  Richard Guenther  <rguenther@suse.de>
30972
30973         * var-tracking.c (vars_copy_1): Inline ...
30974         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
30975         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
30976         (variable_merge_over_cur): Adjust.  Merge asserts.
30977         (variable_merge_over_src): Likewise.
30978         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
30979         (variable_post_merge_new_vals): Merge asserts.
30980         (variable_post_merge_perm_vals): Likewise.
30981         (find_mem_expr_in_1pdv): Likewise.
30982         (dataflow_set_different_value): Remove.
30983         (onepart_variable_different_p): Merge asserts.
30984         (variable_different_p): Likewise.
30985         (dataflow_set_different_1): Inline ...
30986         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
30987         (emit_notes_for_differences_1): Merge asserts.
30988
30989 2010-05-16  Richard Guenther  <rguenther@suse.de>
30990
30991         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
30992         * optabs.c (libfunc_decl_hash): Likewise.
30993         * varasm.c (emutls_decl): Likewise.
30994
30995 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
30996
30997         * c-decl.c: Don't include gimple.h.
30998         (merge_decls): Do not copy gimple_body.
30999
31000 2010-05-15  Jason Merrill  <jason@redhat.com>
31001
31002         * c.opt: Add -fnothrow-opt.
31003
31004 2010-05-15  Jan Hubicka  <jh@suse.cz>
31005
31006         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
31007         analyzed.
31008         * passes.c (ipa_write_summaries): Write all analyzed nodes.
31009
31010 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
31011
31012         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
31013         * Makefile.in: Add it.
31014         Fix all other Makefile dependencies for changes below.
31015         * tree.h: Include it instead of defining VEC primitives here.
31016         * gimple.h: Likewise.
31017         * rtl.h: Likewise.
31018         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
31019         * except.h: Include vecir.h, break dependence on tree.h.
31020
31021         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
31022         Move from here...
31023         * tree-iterator.c: ...to here.
31024         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
31025
31026         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
31027         tm_p.h.
31028         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
31029         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
31030         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
31031         tree-mudflap.h, and target.h.
31032         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
31033         predict.h, tree-inline.h, gimple.h, and langhooks.h.
31034         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
31035         Add FIXME for why gimple.h is still included (should be unnecessary
31036         since GCC 4.5 gimplification unit-at-a-time).
31037         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
31038         * c-pragma.c: Add FIXME for why function.h needs to be included just
31039         for cfun, at front-end level.
31040         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
31041         Do not include ggc.h, but include vecprim.h for VEC(char).
31042         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
31043         Explain why target.h is included.
31044         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
31045         Explain why gimple.h is included.
31046         * c-ppoutput.c: Do not include tm.h.
31047         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
31048         * c-parses.c: Explain why rtl.h is included, and that this (and only
31049         this) is also why tm.h must be included.
31050         Do not include except.h.
31051         * c-lang.c: Do not include ggc.h.
31052
31053 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
31054
31055         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
31056
31057 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
31058
31059         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
31060         unions by default if those structs and unions have no tags.  Do
31061         not condition anonymous struct and unions handling on flag_iso.
31062         Allow anonymous structs and unions for C1X.
31063         (finish_struct): Do not diagnose lack of named fields when
31064         anonymous structs and unions present for C1X.  Accept flexible
31065         array members in structure with anonymous structs or unions but no
31066         directly named fields.
31067         * doc/extend.texi (Unnamed Fields): Update.
31068
31069 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
31070
31071         * gimple.h (compare_field_offset): Rename into...
31072         (gimple_compare_field_offset): ...this.
31073         * gimple.c (compare_field_offset): Rename into...
31074         (gimple_compare_field_offset): ...this.  Compare the full access if
31075         the offset is self-referential.
31076         (gimple_types_compatible_p): Adjust for above renaming.
31077         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
31078         DECL_NONADDRESSABLE_P flag of fields before merging them.
31079
31080 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
31081
31082         * tree.h (ctor_to_list): Delete.
31083         * tree.c (ctor_to_list): Delete.
31084
31085 2010-05-15  Jan Hubicka  <jh@suse.cz>
31086
31087         * ipa-reference.c: Include toplev.h
31088         (is_proper_for_analysis): Only add to all_module_statics
31089         if it is allocated.
31090         (write_node_summary_p, stream_out_bitmap,
31091         ipa_reference_write_optimization_summary,
31092         ipa_reference_read_optimization_summary): New.
31093         (struct ipa_opt_pass_d pass_ipa_reference): Add
31094         optimization summary streaming.
31095         * lto-cgraph.c (referenced_from_this_partition_p,
31096         reachable_from_this_partition_p): New functions.
31097         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
31098         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
31099         * opts.c (decode_options): Enable ipa_reference.
31100         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
31101         * lto-streamer.h (referenced_from_this_partition_p,
31102         reachable_from_this_partition_p): Declare.
31103
31104 2010-05-15  Richard Guenther  <rguenther@suse.de>
31105
31106         PR tree-optimization/44038
31107         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
31108         taking the address of a V_C_E of a constant.
31109
31110 2010-05-14  Jan Hubicka  <jh@suse.cz>
31111
31112         * tree.h (memory_identifier_string): Remove.
31113         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
31114         (ipa_reference_global_vars_info_d): Remove statics_not_read and
31115         statics_not_written.
31116         (ipa_reference_optimization_summary_d): New structure.
31117         (ipa_reference_optimization_summary_t): New type and vector.
31118         (ipa_reference_vars_info_d): Embedd structures instead of using
31119         pointers.
31120         (reference_vars_to_consider): Remove out of GGC space.
31121         (module_statics_escape): Remove.
31122         (global_info_obstack): Rename to ...
31123         (optimization_summary_obstack): ... this one.
31124         (initialization_status_t): Remove.
31125         (memory_identifier_string): Remove.
31126         (get_reference_vars_info): Fix indenting.
31127         (set_reference_vars_info): Likewise.
31128         (get_reference_optimization_summary): New.
31129         (set_reference_optimization_summary): New.
31130         (get_global_reference_vars_info): Remove.
31131         (ipa_reference_get_read_global): Remove.
31132         (ipa_reference_get_written_global): Remove.
31133         (ipa_reference_get_not_read_global): Update.
31134         (ipa_reference_get_not_written_global): Update.
31135         (is_proper_for_analysis): Outlaw addressable.
31136         (propagate_bits): Update for new datastructures.
31137         (analyze_variable): Remove.
31138         (init_function_info): Update for new datastructures.
31139         (clean_function_local_data): Remove.
31140         (clean_function): Remove.
31141         (copy_global_bitmap): Use optimizations_summary_obstack.
31142         (duplicate_node_data): Duplicate optimization summary only.
31143         (remove_node_data): Remove optimization summary only.
31144         (generate_summary): Do not analyze variables; do not compute
31145         module_statics_escape; do not prune solutions by it.
31146         (read_write_all_from_decl): Fix typos in comments.
31147         (propagate): Doscover readonly and nonaddressable first;
31148         update for new datastructures; share global bitmaps.
31149         * ipa-reference.h (ipa_reference_get_read_global,
31150         ipa_reference_get_written_global): Remove.
31151         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
31152         * Makefile.in: Remove ipa-refereference from GT files.
31153
31154 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
31155
31156         PR debug/44112
31157         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
31158         for all SYMBOL_REF_DECLs.
31159
31160 2010-05-14  Jan Hubicka  <jh@suse.cz>
31161
31162         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
31163         (varpool_all_refs_explicit_p): New inline function.
31164         * ipa-reference.c: Update comment.
31165         (module_statics_written): Remove.
31166         (get_static_decl): Remove.
31167         (ipa_init): Do not initialize module_statics_written.
31168         (analyze_function): Likewise.
31169         (generate_summary): Likewise; do not compute module_statics_readonly
31170         and do not update variable flags.
31171         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
31172         * ipa.c: Inlucde flags.h
31173         (cgraph_local_node_p): New.
31174         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
31175         promote functions to local.
31176         (ipa_discover_readonly_nonaddressable_vars): New function.
31177         (function_and_variable_visibility): Use cgraph_local_node_p.
31178         * varpool.c (varpool_finalize_decl): Set force_output for
31179         DECL_PRESERVE_P vars.
31180
31181 2010-05-14  Jan Hubicka  <jh@suse.cz>
31182
31183         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
31184
31185 2010-05-14  Richard Guenther  <rguenther@suse.de>
31186
31187         PR tree-optimization/44119
31188         * tree-ssa-pre.c (eliminate): Properly mark replacement of
31189         a PHI node necessary.
31190
31191 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
31192
31193         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
31194
31195 2010-05-14  Jason Merrill  <jason@redhat.com>
31196
31197         PR c++/44127
31198         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
31199         (gimple_call_set_nothrow): New.
31200         * gimple.c (gimple_build_call_from_tree): Call it.
31201         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
31202
31203         PR c++/44127
31204         * gimplify.c (gimplify_seq_add_stmt): No longer static.
31205         * gimple.h: Declare it.
31206         * gimple.c (gimple_build_eh_filter): No ops.
31207
31208 2010-05-14  Jan Hubicka  <jh@suse.cz>
31209
31210         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
31211         nodes already in queue.
31212         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
31213         re-enqueueing node.
31214
31215 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
31216
31217         PR debug/44136
31218         * cfgexpand.c (expand_debug_expr): If non-memory op0
31219         has BLKmode, return NULL.
31220
31221 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
31222
31223         * config.gcc: Add support for --with-cpu option for bdver1.
31224         * config/i386/i386.h (TARGET_BDVER1): New macro.
31225         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
31226         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
31227         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
31228         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
31229         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
31230         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
31231         (processor_type): Add PROCESSOR_BDVER1.
31232         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
31233         processor_type in config/i386/i386.h.
31234         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
31235         movaps <reg, reg> instead of movapd <reg, reg> when replacing
31236         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
31237         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
31238         to emit packed xor instead of packed double/packed integer
31239         xor for SSE and AVX when moving a zero value.
31240         * config/i386/sse.md: Add check for
31241         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
31242         movapd/movdqa for SSE and AVX.
31243         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
31244         single logical operations i.e and, or and xor instead of packed double
31245         logical operations for SSE and AVX.
31246         * config/i386/i386-c.c (ix86_target_macros_internal):
31247         Add PROCESSOR_BDVER1.
31248         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
31249         (has_fma4, has_xop): New.
31250         * config/i386/i386.c (bdver1_cost): New variable.
31251         (m_BDVER1): New macro.
31252         (m_AMD_MULTIPLE): Add m_BDVER1.
31253         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
31254         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
31255         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
31256         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
31257         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
31258         x86_tune_sse_partial_reg_dependency,
31259         x86_tune_sse_unaligned_load_optimal,
31260         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
31261         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
31262         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
31263         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
31264         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
31265         Enable/disable for bdver1.
31266         (processor_target_table): Add bdver1_cost.
31267         (cpu_names): Add bdver1.
31268         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
31269          processor_alias_table.
31270         (ix86_expand_vector_move_misalign): Change.
31271         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
31272         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
31273         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
31274         of movupd/movdqu for SSE and AVX.
31275         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
31276         (ix86_tune_adjust_cost): Add code for bdver1.
31277         (standard_sse_constant_opcode): Add check for
31278         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
31279         of packed double xor for SSE and AVX.
31280
31281 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
31282
31283         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
31284         result to unsigned.
31285
31286 2010-05-14  Tristan Gingold  <gingold@adacore.com>
31287
31288         * toplev.c (default_debug_hooks): Remove this variable.
31289         (process_options): Remove assignments to default_debug_hooks.
31290
31291 2010-05-14  Martin Jambor  <mjambor@suse.cz>
31292
31293         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
31294         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
31295         * langhooks.h (struct lang_hooks_for_decls): Removed field
31296         fold_obj_type_ref.
31297         * tree.c (free_lang_data): Remove assignment to
31298         lang_hooks.fold_obj_type_ref.
31299         * tree.def (OBJ_TYPE_REF): Update comment.
31300
31301 2010-05-14  Richard Guenther  <rguenther@suse.de>
31302
31303         PR tree-optimization/44124
31304         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
31305
31306 2010-05-14  Alan Modra  <amodra@gmail.com>
31307
31308         PR target/44075
31309         * config/rs6000/rs6000.c (struct machine_function): Reorder
31310         fields for better packing.  Add lr_save_state.
31311         (rs6000_ra_ever_killed): Return lr_save_state if set.
31312         (rs6000_emit_eh_reg_restore): Set lr_save_state.
31313
31314 2010-05-13  Jan Hubicka  <jh@suse.cz>
31315
31316         * varpool.c (decide_is_variable_needed): Drop code checking
31317         TREE_SYMBOL_REFERENCED.
31318
31319 2010-05-13  Jan Hubicka  <jh@suse.cz>
31320
31321         * final.c (output_addr_const): Do not call mark_decl_referenced.
31322         * cgraphunit.c (process_function_and_variable_attributes): Use
31323         mark_needed_node dirrectly.
31324         (assemble_thunk): Do not call mark_decl_referenced.
31325
31326 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
31327
31328         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
31329
31330 2010-05-13  Jeff Law  <law@redhat.com>
31331
31332         * ira-conflicts.c (print_allocno_conflicts): New function broken out
31333         from...
31334         (print_conflicts): Call print_allocno_conflicts.
31335
31336 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
31337
31338         PR debug/44104
31339         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
31340         if it is NULL.
31341
31342 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
31343
31344         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
31345         t-mingw-w64 or t-mingw-w32 for multilib configuration.
31346         * config/i386/t-mingw-w32: New.
31347         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
31348
31349 2010-05-13  Martin Jambor  <mjambor@suse.cz>
31350
31351         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
31352         gimple-fold.c).
31353         * gimple-fold.c (get_base_binfo_for_type): New function.
31354         (gimple_get_relevant_ref_binfo): Likewise.
31355         (gimple_fold_obj_type_ref_known_binfo): Likewise.
31356         (gimple_fold_obj_type_ref): Likewise.
31357         (fold_gimple_call): Simplify condition for folding virtual calls
31358         and call gimple_fold_obj_type_ref.
31359         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
31360         (gimple_fold_obj_type_ref_known_binfo): Likewise.
31361
31362 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
31363
31364         * config/rs6000/rs6000-protos.h
31365         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
31366         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
31367         (rs6000_debug_mode_dependent_address)
31368         (rs6000_mode_dependent_address_ptr): Likewise.
31369
31370 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
31371
31372         PR debug/43983
31373         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
31374         by SRA.
31375         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
31376         * tree-sra.c (create_access_replacement): Call unshare_expr before
31377         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
31378         * dwarf2out.c: Include tree-flow.h.
31379         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
31380         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
31381         Handle DW_OP_bit_piece.
31382         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
31383         construct_piece_list, adjust_piece_list): New functions.
31384         (add_var_loc_to_decl): Handle SRA optimized variables.
31385         Adjust for var_loc_note to loc field renaming.
31386         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
31387         in VAR_LOCATION note.
31388         (new_loc_descr_op_bit_piece): New function.
31389         (dw_sra_loc_expr): New function.
31390         (dw_loc_list): Use it.  Don't handle the last range after the
31391         loop, handle it inside of the loop.  Adjust for var_loc_note
31392         to loc field renaming.
31393         (add_location_or_const_value_attribute): Only special case
31394         single entry loc lists if loc is NOTE_P.  Adjust for
31395         var_loc_note to loc field renaming.
31396         (dwarf2out_var_location): Don't set newloc->var_loc_note
31397         and newloc->next here.
31398
31399 2010-05-12  Jan Hubicka  <jh@suse.cz>
31400
31401         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
31402         flag.
31403         * cgraph.h (cgraph_only_called_directly_p,
31404         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
31405         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
31406         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
31407         (assemble
31408         * ipa.c (cgraph_remove_unreachable_nodes): Use
31409         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
31410         flags.
31411         * tree-inline.c (copy_bb): Check address_taken flag.
31412         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
31413         externally_visible flag.
31414
31415 2010-05-12  Jason Merrill  <jason@redhat.com>
31416
31417         PR bootstrap/44048
31418         PR target/44099
31419         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
31420         * sdbout.c (plain_type_1): Likewise.
31421         * dwarf2out.c (is_base_type): Likewise.
31422         (gen_type_die_with_usage): Likewise.  Generate
31423         DW_TAG_unspecified_type for any LANG_TYPE.
31424
31425 2010-05-12  Jan Hubicka  <jh@suse.cz>
31426
31427         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
31428         indrect edges too.
31429         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
31430         (cgraph_clone_edge): Update.
31431         (cgraph_node_remove_callees): Remove indirect calls too.
31432         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
31433         (cgraph_create_indirect_edge): Update prototype.
31434         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
31435         is_proper_for_analysis.
31436         (add_new_function, visited_nodes, function_insertion_hook_holder,
31437         get_local_reference_vars_info, mark_address_taken, mark_address,
31438         mark_load, mark_store, check_asm_memory_clobber, check_call,
31439         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
31440         (ipa_init): Do not initialize visited_nodes;
31441         function_insertion_hook_holder.
31442         (analyze_variable): Rewrite.
31443         (analyze_function): Rewrite.
31444         (copy_local_bitmap): Remove.
31445         (duplicate_node_dat): Do not duplicate local info.
31446         (generate_summary): Simplify to only walk cgraph.
31447         (write_node_summary_p, ipa_reference_write_summary,
31448         ipa_reference_read_summary): Remove.
31449         (propagate): Do not remove function insertion;
31450         generate summary.
31451         (pass_ipa_reference): NULLify summary handling fields.
31452         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
31453         (input_edge): Input ecf_flags.
31454         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
31455         (update_indirect_edges_after_inlining): Ignore edges with unknown
31456         param.
31457
31458 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
31459
31460         * implicit-zee.c: New file.
31461         * tree-pass.h (pass_implicit_zee): Declare.
31462         * passes.c (init_optimization_passes): Add zee pass.
31463         * common.opt (fzee): New flag.
31464         * timevar.def (TV_ZEE): Define.
31465         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
31466         and beyond.
31467         * Makefile.in (implicit-zee.o): Add new build file.
31468
31469 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
31470             Nathan Froyd  <froydnj@codesourcery.com>
31471
31472         * c-common.c (sync_resolve_params): Remove write-only variable.
31473
31474 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
31475
31476         * target.h (struct gcc_target): Add mode_dependent_address_p field.
31477         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
31478         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
31479         * targhooks.c (default_mode_dependent_address_p): New function.
31480         * targhooks.h (default_mode_dependent_address_p): Declare function.
31481         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
31482         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
31483         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
31484         target hook. Change return type to bool.
31485         * recog.h (mode_dependent_address_p): Change return type to bool.
31486
31487 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
31488             Nathan Froyd  <froydnj@codesourcery.com>
31489
31490         * tree-mudflap.c (build_function_type_0, build_function_type_1,
31491         build_function_type_2, build_function_type_3): Remove.
31492         (mudflap_init): Use build_function_type_list.
31493
31494 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
31495             Nathan Froyd  <froydnj@codesourcery.com>
31496
31497         * coverage.c (build_fn_info_value): Call build_constructor instead of
31498         build_constructor_from_list.
31499         (build_ctr_info_value): Likewise.
31500         (build_gcov_info): Likewise.
31501
31502 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
31503
31504         * tree.c (build_constructor): Compute TREE_CONSTANT for the
31505         resultant constructor.
31506         (build_constructor_single): Don't set TREE_CONSTANT.
31507         (build_constructor_from_list): Don't compute TREE_CONSTANT.
31508
31509 2010-05-12  Jan Hubicka  <jh@suse.cz>
31510
31511         * cgraph.h (struct varpool_node): Add aux.
31512         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
31513         * varpool.c (varpool_remove_node): Do not remove initializer.
31514         (varpool_reset_queue): Export.
31515         (varpool_finalize_decl): Volatile vars are forced to be output.
31516         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
31517         replaced decl.
31518         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
31519         process_references, varpool_can_remove_if_no_refs): New functions.
31520         (cgraph_remove_unreachable_nodes): Handle variables too.
31521
31522 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
31523
31524         PR target/44088
31525         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
31526
31527 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
31528
31529         PR middle-end/44085
31530         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
31531         change value of ORT_TASK.
31532         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
31533         (omp_notice_threadprivate_variable): New function.
31534         (omp_notice_variable): Call it for threadprivate variables.
31535         If enclosing ctx is a task, print enclosing task rather than
31536         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
31537         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
31538         if task has untied clause.
31539
31540         PR debug/42278
31541         * dwarf2out.c (base_type_die): Don't add name attribute here.
31542         (modified_type_die): Instead of sizetype use
31543         its underlying original type.  If a DW_TAG_base_type doesn't
31544         have name added, add __unknown__.
31545         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
31546         always call force_type_die instead.
31547
31548 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
31549
31550         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
31551         for __stack_chk_guard.
31552
31553 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
31554
31555         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
31556         don't call start_source_file debug hook here...
31557         (finish_options): ... but here, after outputting predefined and
31558         command line defines and undefs.
31559
31560         PR middle-end/44071
31561         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
31562         no fallthru edge.
31563         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
31564         optimizing away empty bb with no successors, move over its
31565         footer chain to fallthru predecessor.
31566         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
31567         (rtl_split_edge): For asm goto call patch_jump_insn even if
31568         splitting fallthru edge.
31569
31570         PR c++/44059
31571         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
31572         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
31573         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
31574         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
31575         on DW.ref.* decls.
31576
31577         PR c++/44062
31578         * c-parser.c (c_parser_expression): Mark LHS of a comma
31579         expression as read if it is a decl, handled component or
31580         COMPOUND_EXPR with that on the RHS.
31581         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
31582         if it is a decl or handled component.
31583
31584 2010-05-11  Jan Hubicka  <jh@suse.cz>
31585
31586         * lto-symtab.c (lto_symtab_free): New function.
31587         * lto-streamer.h (lto_symtab_free): Declare.
31588
31589 2010-05-11  Jan Hubicka  <jh@suse.cz>
31590
31591         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
31592         that if function is needed it is reachable.
31593         (lto_output_node): See if it the function is reachable or referenced.
31594         (output_cgraph): Update call of lto_output_node.
31595         * lto-streamer.h (reachable_from_other_partition_p): Declare.
31596
31597 2010-05-11  Jan Hubicka  <jh@suse.cz>
31598
31599         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
31600         Mark as used.
31601
31602 2010-05-11  Jan Hubicka  <jh@suse.cz>
31603
31604         PR tree-optimize/44063
31605         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
31606         queue.
31607         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
31608         limits.
31609         (estimate_function_body_sizes): Compute sizes even when disregarding.
31610
31611 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
31612
31613         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
31614
31615 2010-05-11  Jan Hubicka  <jh@suse.cz>
31616
31617         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
31618         into every boundary.
31619
31620 2010-05-11  Jan Hubicka  <jh@suse.cz>
31621
31622         * matrix-reorg.c (matrix_reorg): Rebuild edges.
31623
31624 2010-05-11  Jan Hubicka  <jh@suse.cz>
31625
31626         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
31627         lto_streamer_cache_delete): Put nodes into heap.
31628         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
31629         heap.
31630
31631 2010-05-11  Jan Hubicka  <jh@suse.cz>
31632
31633         * cgraphbuild.c (cgraph_rebuild_references): New.
31634         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
31635         out extern inlines.
31636         * cgraph.h (cgraph_rebuild_references): Declare.
31637         * tree-inline.c (tree_function_versioning): Use it.
31638         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
31639
31640 2010-05-11  Jan Hubicka  <jh@suse.cz>
31641
31642         * cgraph.c: Include ipa-utils.h
31643         (cgraph_create_virtual_clone): Update references.
31644         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
31645
31646 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
31647
31648         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
31649         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
31650         cache size.
31651
31652 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
31653
31654         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
31655
31656 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
31657
31658         * gcc.c (execute): For -### don't quote arguments that
31659         contain just alphanumerics and _/-. characters.
31660         * doc/invoke.texi: Document that change for -###.
31661
31662         PR debug/44023
31663         * df-problems.c (struct dead_debug): Add to_rescan field.
31664         (dead_debug_init): Clear to_rescan field.
31665         (dead_debug_finish): Rescan all debug insns in to_rescan
31666         bitmap and free the bitmap.
31667         (dead_debug_insert_before): Instead of rescanning debug insns
31668         immediately queue their rescanning until dead_debug_finish.
31669         (df_note_bb_compute): After dead_debug_add do continue instead
31670         of break.
31671
31672 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
31673
31674         PR debug/44028
31675         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
31676         clear also INSN_REG_USE_LIST.
31677
31678 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31679
31680         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
31681
31682 2010-05-10  Jan Hubicka  <jh@suse.cz>
31683
31684         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
31685         commited change.
31686
31687 2010-05-10  Jan Hubicka  <jh@suse.cz>
31688
31689         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
31690         Allocate encoders.
31691         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
31692         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
31693         (lto_streamer_cache_create): Init alloc pool.
31694         (lto_streamer_cache_delete): Free alloc pool.
31695         * lto-streamer.h: Include alloc pool.
31696         (lto_streamer_cache_d): Use alloc pool.
31697         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
31698
31699 2010-05-10  Jan Hubicka  <jh@suse.cz>
31700
31701         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
31702         * cgraphbuild.c: Include except.h
31703         (record_type_list, record_eh_tables): New function.
31704         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
31705
31706 2010-05-10  Jan Hubicka  <jh@suse.cz>
31707
31708         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
31709         __frame_dummy_init_array_entry, force_to_data): Attribute as used
31710         rather than unused.
31711
31712 2010-05-10  Michael Matz  <matz@suse.de>
31713
31714         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
31715         (can_reassociate_p): Use FLOAT_TYPE_P.
31716         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
31717         (vect_force_simple_reduction): ... this.
31718         * tree-parloops.c (gather_scalar_reductions): Use
31719         vect_force_simple_reduction.
31720         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
31721         vect_is_simple_reduction, add modify argument, if true rewrite
31722         "a-b" into "a+(-b)".
31723         (vect_is_simple_reduction, vect_force_simple_reduction): New
31724         functions.
31725         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
31726
31727 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
31728             Vladimir Makarov  <vmakarov@redhat.com>
31729
31730         PR rtl-optimization/44012
31731         * ira-build.c (remove_unnecessary_allocnos): Nullify
31732         regno_allocno_map of the removed allocno.
31733
31734 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31735
31736         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
31737         to /dev/null.
31738         * configure: Regenerate.
31739
31740 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31741
31742         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
31743         unused.
31744         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
31745         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
31746         support in Sun ld.
31747         * configure: Regenerate.
31748
31749 2010-05-10  Richard Guenther  <rguenther@suse.de>
31750
31751         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
31752         marked if the entry identifier is marked.
31753
31754 2010-05-10  Richard Guenther  <rguenther@suse.de>
31755
31756         * c-common.c (struct c_common_attributes): Add fnspec attribute.
31757         (handle_fnspec_attribute): New function.
31758         * gimple.h (gimple_call_return_flags): Declare.
31759         (gimple_call_arg_flags): Likewise.
31760         * gimple.c (gimple_call_arg_flags): New function.
31761         (gimple_call_return_flags): Likewise.
31762         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
31763         New argument flags.
31764         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
31765         return value flags.
31766         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
31767         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
31768         main work to ...
31769         (make_heapvar_for): ... this new function.
31770         (handle_rhs_call): Handle fnspec attribute argument specifiers.
31771         (handle_lhs_call): Likewise.
31772         (find_func_aliases): Adjust.
31773
31774 2010-05-10  Richard Guenther  <rguenther@suse.de>
31775
31776         PR tree-optimization/44050
31777         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
31778
31779 2010-05-10  Wei Guozhi  <carrot@google.com>
31780
31781         PR target/42879
31782         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
31783
31784 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
31785
31786         PR c/10676
31787         * c-typeck.c (lookup_field): Take a type directly.  Update
31788         recursive calls.
31789         (build_component_ref): Update call to lookup_field.
31790         (set_init_label): Use lookup_field to find initialized field.
31791         Handle returned list of fields like a sequence of designators.
31792
31793 2010-05-09  Richard Guenther  <rguenther@suse.de>
31794
31795         PR middle-end/44024
31796         * fold-const.c (tree_single_nonzero_warnv_p): Properly
31797         handle &FUNCTION_DECL.
31798
31799 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
31800
31801         PR c/4784
31802         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
31803         structures and unions recursively.
31804         (detect_field_duplicates): Move duplicate detection with a hash to
31805         detect_field_duplicates_hash.  Always use a hash if anonymous
31806         structures or unions are present.
31807         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
31808         give errors.
31809
31810 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
31811
31812         PR target/44046
31813         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
31814         detect Atom, Core 2 and Core i7.
31815
31816 2010-05-09  Richard Guenther  <rguenther@suse.de>
31817
31818         * gcc.c (store_arg): Handle temporary file deletion for
31819         joined arguments.
31820
31821 2010-05-09  Richard Guenther  <rguenther@suse.de>
31822
31823         PR middle-end/44043
31824         * ipa-inline.c (estimate_function_body_sizes): Return after
31825         disregarding inline limits.
31826
31827 2010-05-09  Richard Guenther  <rguenther@suse.de>
31828
31829         * gcc.c (store_arg): Revert last change.
31830
31831 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
31832
31833         PR middle-end/28685
31834         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
31835         (optimize_ops_list): Call it.
31836
31837 2010-05-08  Richard Guenther  <rguenther@suse.de>
31838
31839         PR tree-optimization/44030
31840         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
31841         NECESSARY flag if we propagate from a inserted expression.
31842
31843 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
31844
31845         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
31846         domain types as equal if they are both PLACEHOLDER_EXPRs.
31847
31848 2010-05-08  Richard Guenther  <rguenther@suse.de>
31849
31850         * lto-wrapper.c (run_gcc): Remove linker output from
31851         command line for LTRANS invocation.
31852
31853 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
31854
31855         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
31856         lto-macho as lto_binary_reader.
31857         * target.h (struct gcc_target): New hooks lto_start and lto_end.
31858         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
31859         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
31860         in lto_start and lto_end calls.
31861         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
31862         magic numbers.
31863         (scan_prog_file): Update is_elf_or_coff call.
31864         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
31865
31866         * collect2.c (main): Fix enum comparison.
31867
31868         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
31869         Add prototypes.
31870         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
31871         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
31872         and TARGET_ASM_LTO_END.
31873         * darwin.c: Include obstack.h and lto-streamer.h.
31874         (lto_section_names_offset, lto_section_names_obstack,
31875         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
31876         global variables.
31877         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
31878         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
31879         to a temporary file.
31880         (darwin_asm_lto_end): New function.  Restore asm_out_file.
31881         (darwin_asm_named_section): For LTO sections, replace the name with
31882         the offset of the section name in a string table, and build this
31883         table.
31884         (darwin_file_start): Initialize global vars for LTO support.
31885         (darwin_file_end): If output to asm_out_file was redirected, append it
31886         to the proper asm_out_file here.  Add the section names section.
31887
31888 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
31889
31890         * c-pragma.c (pending_weak_d, pending_weak): New.
31891         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
31892         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
31893         handle_pragma_weak): Update the uses of pending_weaks.
31894
31895 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31896
31897         PR documentation/44016
31898         * doc/standards.texi (Standards): Link to unversioned
31899         cxx0x_status.html page.
31900
31901 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
31902
31903         PR target/43708
31904         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
31905         in addition to TREE_USED, to avoid "set but unused" warnings.
31906
31907 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
31908
31909         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
31910         (is_loop_prefetching_profitable): Do not insert prefetches
31911         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
31912         times the prefetch ahead distance.
31913
31914 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
31915
31916         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
31917         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
31918         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
31919         the unroll_factor.
31920
31921 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
31922
31923         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
31924         a diagnostic info when the insn-to-mem ratio is too small.
31925
31926 2010-05-07  Richard Guenther  <rguenther@suse.de>
31927
31928         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
31929         the linker plugin.
31930         (store_arg): Queue temp_filename for deletion instead of
31931         the whole argument.
31932
31933 2010-05-07  Richard Guenther  <rguenther@suse.de>
31934
31935         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
31936         (run_gcc): Handle LTRANS phase invocation.
31937         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
31938
31939 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
31940
31941         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
31942         this is also meaningful on PARM_DECLs and RESULT_DECLs.
31943
31944 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31945
31946         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
31947
31948 2010-05-07  Richard Guenther  <rguenther@suse.de>
31949
31950         PR tree-optimization/44020
31951         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
31952         code when PRE is not yet initialized.
31953
31954 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31955
31956         * config/mips/dbxmdebug.h: Remove.
31957         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
31958
31959 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
31960
31961         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
31962         with null pointer and also warn about ordered comparison of zero with
31963         pointer if -Wextra.
31964
31965 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
31966
31967         * graphite-blocking.c
31968         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
31969         * graphite-clast-to-gimple.c
31970         (clast_to_gcc_expression): Same.
31971         (precision_for_value): Same.
31972         (precision_for_interval): Same.
31973         (gcc_type_for_interval): Same.
31974         (graphite_create_new_guard): Same.
31975         (compute_bounds_for_level): Same.
31976         (graphite_create_new_loop_guard): Same.
31977         * graphite-interchange.c
31978         (build_linearized_memory_access): Same.
31979         (pdr_stride_in_loop): Same.
31980         (memory_strides_in_loop_1): Same.
31981         (memory_strides_in_loop): Same.
31982         (extend_scattering): Same.
31983         (psct_scattering_dim_for_loop_depth): Same.
31984         (pbb_number_of_iterations): Same.
31985         * graphite-poly.h
31986         (debug_iteration_domains): Same.
31987         * graphite-ppl.c
31988         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
31989         (ppl_set_inhomogeneous_gmp): Same.
31990         (ppl_strip_loop): Same.
31991         (ppl_lexico_compare_linear_expressions): Same.
31992         (ppl_read_polyhedron_matrix): Same.
31993         (ppl_max_for_le_pointset): Same.
31994         * graphite-ppl.h
31995         (ppl_read_polyhedron_matrix): Same.
31996         (tree_int_to_gmp): Same.
31997         (gmp_cst_to_tree): Same.
31998         (ppl_set_inhomogeneous): Same.
31999         (ppl_set_inhomogeneous_tree): Same.
32000         (ppl_set_coef): Same.
32001         (ppl_set_coef_tree): Same.
32002         * graphite-sese-to-poly.c
32003         (build_pbb_scattering_polyhedrons): Same.
32004         (build_scop_scattering): Same.
32005         (scan_tree_for_params_right_scev): Same.
32006         (scan_tree_for_params): Same.
32007         (find_params_in_bb): Same.
32008         (find_scop_parameters): Same.
32009         (add_upper_bounds_from_estimated_nit): Same.
32010         (build_loop_iteration_domains): Same.
32011         (add_condition_to_domain): Same.
32012         (pdr_add_memory_accesses): Same.
32013
32014 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
32015
32016         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
32017         CLooG's value_* macros to their respective mpz_* counterparts.
32018         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
32019         (graphite_create_new_loop_guard): Same.
32020         * graphite-interchange.c (build_linearized_memory_access): Same.
32021         (pdr_stride_in_loop): Same.
32022         (memory_strides_in_loop_1): Same.
32023         (1st_interchange_profitable_p): Same.
32024         * graphite-poly.c (extend_scattering): Same.
32025         (psct_scattering_dim_for_loop_depth): Same.
32026         (pbb_number_of_iterations): Same.
32027         (pbb_number_of_iterations_at_time): Same.
32028         * graphite-poly.h (new_1st_loop): Same.
32029         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
32030         (oppose_constraint): Same.
32031         (insert_constraint_into_matrix): Same.
32032         (ppl_set_inhomogeneous_gmp): Same.
32033         (ppl_set_coef_gmp): Same.
32034         (ppl_strip_loop): Same.
32035         (ppl_lexico_compare_linear_expressions): Same.
32036         (ppl_max_for_le_pointset): Same.
32037         (ppl_min_for_le_pointset): Same.
32038         (ppl_build_realtion): Same.
32039         * graphite-ppl.h (gmp_cst_to_tree): Same.
32040         (ppl_set_inhomogeneous): Same.
32041         (ppl_set_inhomogeneous_tree): Same.
32042         (ppl_set_coef): Same.
32043         (ppl_set_coef_tree): Same.
32044         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
32045         (build_scop_scattering): Same.
32046         (add_value_to_dim): Same.
32047         (scan_tree_for_params_right_scev): Same.
32048         (scan_tree_for_params_int): Same.
32049         (scan_tree_for_params): Same.
32050         (find_params_in_bb): Same.
32051         (find_scop_parameters): Same.
32052         (add_upper_bounds_from_estimated_nit): Same.
32053         (build_loop_iteration_domains): Same.
32054         (create_linear_expr_from_tree): Same.
32055         (add_condition_to_domain): Same.
32056         (pdr_add_memory_accesses): Same.
32057
32058 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
32059             Jason Merrill  <jason@redhat.com>
32060
32061         * c-common.c (c_common_reswords): Add nullptr.
32062         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
32063         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
32064         (gen_type_die_with_usage): Likewise.
32065         * dbxout.c (dbxout_type): Likewise.
32066         * sdbout.c (plain_type_1): Likewise.
32067
32068 2010-05-06  Jason Merrill  <jason@redhat.com>
32069
32070         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
32071         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
32072         ret appropriately.
32073         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
32074
32075         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
32076         stripping WITH_SIZE_EXPR.
32077         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
32078         change.
32079
32080 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32081
32082         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
32083         list of obsolete configurations.
32084         Disabled check for obsolete configurations.
32085         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
32086         Removed support for previous versions.
32087         * config/mips/iris.h: Removed.
32088         * config/mips/iris5.h: Removed.
32089         * config/mips/iris6.h: Merged old iris.h contents.
32090         (TARGET_IRIX): Removed.
32091         (DRIVER_SELF_SPECS): Removed mabi=32.
32092         (IDENT_ASM_OP): Removed undef.
32093         (STARTFILE_SPEC): Removed mabi=32.
32094         (ENDFILE_SPEC): Likewise.
32095         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
32096         (MACHINE_TYPE): Update for IRIX 6.5.
32097         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
32098         TARGET_IRIX by TARGET_IRIX6.
32099         (mips_file_start): Likewise.
32100         (mips_output_external): Remove IRIX 5/6 O32 support.
32101         (mips_output_function_prologue): Likewise.
32102         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
32103         TARGET_IRIX6.
32104         (TARGET_CPU_CPP_BUILTINS): Likewise.
32105         (TARGET_IRIX): Removed.
32106         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
32107         (MULTILIB_DIRNAMES): Removed 32.
32108         (MULTILIB_OSDIRNAMES): Removed ../lib.
32109         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
32110         (Specific, mips-sgi-irix5): Document removal.
32111         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
32112         Remove references to older IRIX 6 releases and the O32 ABI.
32113
32114 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
32115
32116         PR bootstrap/43994
32117         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
32118         instead of DF_REF_REAL_REG.
32119
32120 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
32121
32122         PR target/43888
32123         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
32124         handling to still return true for x64 targets.
32125
32126 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
32127
32128         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
32129
32130 2010-05-06  Jan Hubicka  <jh@suse.cz>
32131
32132         PR tree-optimization/43791
32133         * ipa-inline.c (update_caller_keys): Remove bogus
32134         disregard_inline_limits check.
32135
32136 2010-05-06  Michael Matz  <matz@suse.de>
32137
32138         PR tree-optimization/43984
32139         * tree-ssa-pre.c (inserted_phi_names): Remove.
32140         (inserted_exprs): Change to bitmap.
32141         (create_expression_by_pieces): Set bits, don't append to vector.
32142         (insert_into_preds_of_block): Don't handle inserted_phi_names.
32143         (eliminate): Don't look at inserted_phi_names, remove deleted
32144         insns from inserted_exprs.
32145         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
32146         (init_pre, fini_pre): Allocate and free bitmaps.
32147         (execute_pre): Insert insns on edges before elimination.
32148
32149 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
32150
32151         * tree.c (initializer_zerop): Handle STRING_CST.
32152
32153 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32154
32155         PR 40989
32156         * doc/invoke.texi (Wimplicit): Document as C only.
32157         * opts.c (common_handle_option): Add argument kind.
32158         (handle_option): Rename as read_cmdline_option. Factor out code to...
32159         (handle_option): ... here. New.
32160         (handle_options): Rename as read_cmdline_options.
32161         (decode_options): Update call.
32162         (set_option): Use option index instead of option pointer. Classify
32163         diagnostics correctly.
32164         (enable_warning_as_error): Call handle_option.
32165         * opts.h (set_option): Update declaration.
32166         (handle_option): Declare.
32167         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
32168         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
32169         * c-opts.c (set_Wimplicit): Delete.
32170         (c_family_lang_mask): New static constant.
32171         (c_common_handle_option): Add argument kind. Use handle_option
32172         instead of set_Wimplicit.
32173         (c_common_post_options): warn_implicit and warn_implicit_int
32174         are disabled by default.
32175         * c-common.c (warn_implicit): Do not define here.
32176         * c-common.h (warn_implicit): Do not declare here.
32177         (c_common_handle_option): Update declaration.
32178         * lto-opts.c (lto_reissue_options): Update call to set_option.
32179
32180 2010-05-06  Richard Guenther  <rguenther@suse.de>
32181
32182         PR tree-optimization/43571
32183         * domwalk.c (walk_dominator_tree): Walk the dominator
32184         sons in more optimal order.
32185
32186 2010-05-06  Richard Guenther  <rguenther@suse.de>
32187
32188         PR tree-optimization/43934
32189         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
32190         (stmt_cost): Likewise.
32191         (extract_true_false_args_from_phi): New helper.
32192         (determine_max_movement): For PHI nodes verify we can hoist them
32193         and compute their cost.
32194         (determine_invariantness_stmt): Handle PHI nodes.
32195         (move_computations_stmt): Likewise.  Hoist PHI nodes in
32196         if-converted form using COND_EXPRs.
32197         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
32198         (tree_ssa_lim): Likewise.
32199         * tree-flow.h (tree_ssa_lim): Adjust prototype.
32200         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
32201
32202 2010-05-06  Richard Guenther  <rguenther@suse.de>
32203
32204         PR tree-optimization/43987
32205         * tree-ssa-structalias.c (could_have_pointers): For possibly
32206         address-taken variables force pointers to be recorded.
32207         (create_variable_info_for_1): Likewise.
32208         (push_fields_onto_fieldstack): Pass in wheter all fields
32209         must have pointers.
32210         (find_func_aliases): Query types instead of vars whether
32211         they contain pointers where appropriate.
32212
32213 2010-05-06  Jan Hubicka  <jh@suse.cz>
32214
32215         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
32216         (record_reference, mark_address, mark_load, mark_store): Record
32217         references.
32218         (record_references_in_initializer): Update call of record_references.
32219         (rebuild_cgraph_edges): Remove all references before rebuiding.
32220         * cgraph.c (cgraph_create_node): Clear ref list.
32221         (cgraph_remove_node): Remove references.
32222         (dump_cgraph_node): Dump references.
32223         (cgraph_clone_node): Clone references.
32224         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
32225         (struct cgraph_node, varpool_node): Add ref_lst.
32226         * ipa-ref.c: New file.
32227         * ipa-ref.h: New file.
32228         * ipa-ref-inline.h: New file.
32229         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
32230         (referenced_from_other_partition_p): New function.
32231         (lto_output_varpool_node): Take set arugment; call
32232         referenced_from_other_partition.
32233         (lto_output_ref): New.
32234         (add_references): New.
32235         (output_refs): New.
32236         (output_cgraph): Compute boundary based on references; output refs.
32237         (output_varpool): Accept cgraph_node_set argument.
32238         (input_ref): New.
32239         (input_refs): New.
32240         (input_cgraph): Call input_refs.
32241         * lto-section-in.c (lto_section_name): Add refs.
32242         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
32243         (ipa-ref.o): New file.
32244         * varpool.c (varpool_node): Clear ipa ref list.
32245         (varpool_remove_node): Remove references.
32246         (dump_varpool_node): Dump references.
32247         (varpool_assemble_decl): Only compile finalized ones.
32248         (varpool_extra_name_alias): Initialize ref list.
32249         * lto-streamer.c (lto-get_section_name): Add .refs section.
32250         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
32251         (referenced_from_other_partition_p): Declared.
32252
32253 2010-05-06  Ira Rosen  <irar@il.ibm.com>
32254
32255         PR tree-optimization/43901
32256         * tree-vect-stmts.c (vectorizable_call): Assert that vector
32257         type is not NULL if it's transformation phase, and return
32258         FALSE if it's analysis.
32259         (vectorizable_conversion, vectorizable_operation,
32260         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
32261
32262 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
32263
32264         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
32265         Delete.
32266         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
32267         New define.
32268         * config/mips/mips-protos.h
32269         (mips_small_register_classes_for_mode_p): Delete prototype.
32270
32271 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
32272
32273         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
32274         * config/arm/arm.c (multiple_operation_profitable_p,
32275         compute_offset_order): New static functions.
32276         (load_multiple_sequence, store_multiple_sequence): Use them.
32277         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
32278         memory offsets, not register numbers.
32279         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
32280
32281 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
32282
32283         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
32284         (get_pending_sizes, put_pending_size, put_pending_sizes):
32285         Update the uses of pending_sizes.
32286         * c-decl.c (store_parm_decls): Likewise.
32287         * c-tree.h (struct c_arg_info): Likewise.
32288         * tree.h: Update the prototype for get_pending_sizes and
32289         put_pending_sizes.
32290
32291 2010-05-05  Jason Merrill  <jason@redhat.com>
32292
32293         PR debug/43370
32294         * c-common.c (handle_aligned_attribute): Respect
32295         ATTR_FLAG_TYPE_IN_PLACE.
32296
32297         PR testsuite/43758
32298         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
32299         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
32300         (TARGET_INITIALIZER): Use it.
32301         * c-common.c (attribute_takes_identifier_p): Call it.
32302         * c-common.h: Update prototype.
32303         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
32304         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
32305
32306 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
32307
32308         PR debug/43950
32309         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
32310         DW_ID_down_case for Fortran compilation units.
32311
32312 2010-05-05  Jan Hubicka  <jh@suse.cz>
32313
32314         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
32315         handle aliases.
32316
32317 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
32318
32319         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
32320         a variable-sized RESULT_DECL.
32321
32322 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
32323
32324         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
32325
32326 2010-05-05  Jason Merrill  <jason@redhat.com>
32327
32328         PR c++/43787
32329         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
32330         returns GS_OK.
32331         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
32332
32333 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
32334             Jakub Jelinek  <jakub@redhat.com>
32335
32336         PR debug/43478
32337         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
32338         (dead_debug_init, dead_debug_finish): New functions.
32339         (dead_debug_add, dead_debug_insert_before): Likewise.
32340         (df_note_bb_compute): Initialize a dead_debug object, add dead
32341         debug uses to it, insert debug bind insns before death insns,
32342         reset debug insns that refer to pending uses at the end.
32343         * rtl.h (make_debug_expr_from_rtl): New prototype.
32344         * varasm.c (make_debug_expr_from_rtl): New function.
32345
32346 2010-05-05  Jan Hubicka  <jh@suse.cz>
32347
32348         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
32349         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
32350         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
32351         lto_varpool_encoder_deref, lto_varpool_encoder_size,
32352         lto_varpool_encoder_encode_initializer_p,
32353         lto_set_varpool_encoder_encode_initializer): New functions.
32354         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
32355         call output_varpool.
32356         (input_varpool_node): Do not always set analyzed.
32357         (input_cgraph_1): Return vector of cgraph nodes.
32358         (input_varpool_1): Return vector of varpools.
32359         (input_cgraph): Free the vectors.
32360         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
32361         output only initializers needed.
32362         (lto_output): Only call output_cgraph.
32363         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
32364         * lto-section-out.c (lto_new_out_decl_state): Initialize
32365         state->varpool_node_encoder.
32366         * lto-streamer.h (lto_varpool_encoder_d): New.
32367         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
32368         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
32369         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
32370         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
32371         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
32372         Declare.
32373         (output_varpool, input_varpool): Remove declarations.
32374
32375 2010-05-05  Jan Hubicka  <jh@suse.cz>
32376
32377         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
32378         with body can prevail.
32379
32380 2010-05-05  Jan Hubicka  <jh@suse.cz>
32381
32382         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
32383         size.
32384
32385 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
32386
32387         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
32388
32389         * gengtype.h (erro_at_line): Constify pos argument.
32390
32391         * gengtype.c: Include hashtab.h.
32392         (enum gc_used): Document GC_MAYBE_POINTED_TO.
32393         (error_at_line): Constify pos argument.
32394         (do_typedef): Initialize p->opt field.
32395         (get_file_gtfilename): Fix comment typo.
32396         (struct walk_type_data): Constify line field.
32397         (get_output_file_for_structure): New function.
32398         (write_local_func_for_structure): Constify orig_s argument.
32399         Use get_output_file_for_structure.
32400         (write_func_for_structure): Use get_output_file_for_structure.
32401         (INDENT): New define.
32402         (dump_pair, dump_type, dump_type_list, dump_typekind)
32403         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
32404         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
32405         functions.
32406         (seen_types): New variable.
32407         (main): New variable do_dump.  Process "-d" command line option.
32408         Call dump_everything if dump requested.
32409
32410 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
32411
32412         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
32413         in a temporary instead of invoking the macro multiple times.
32414         (track_expr_p): Likewise.
32415
32416 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
32417
32418         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
32419         per new semantics.
32420         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
32421         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
32422         conditions for printing notes.
32423         * common.opt (-Wcoverage-mismatch): Allow negative, default to
32424         true, update documentation.
32425         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
32426
32427 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
32428
32429         PR c/43981
32430         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
32431         on dimen.
32432
32433 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
32434
32435         PR target/43799
32436         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
32437         (*sse_prologue_save_insn1): Likewise.
32438         (SSE prologue save splitter): Likewise.
32439
32440 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
32441
32442         * tree.c (free_lang_data_in_one_sizepos): New inline function.
32443         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
32444         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
32445         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
32446         all decls.  Call it on DECL_FIELD_OFFSET of fields.
32447         (find_decls_types_r): Follow DECL_VALUE_EXPR.
32448         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
32449
32450 2010-05-04  Martin Jambor  <mjambor@suse.cz>
32451
32452         * tree-sra.c (build_access_from_expr_1): The first parameter type
32453         changed to simple tree.
32454         (build_access_from_expr): Likewise, gsi parameter was eliminated.
32455         (scan_assign_result): Renamed to assignment_mod_result, enum elements
32456         renamed as well.
32457         (build_accesses_from_assign): Removed all parameters except for a
32458         simple gimple statement.  Now returns a simple bool.
32459         (scan_function): All non-analysis parts moved to separate functions
32460         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
32461         parameters and updated both callers.
32462         (sra_modify_expr): Removed parameter data.
32463         (sra_modify_function_body): New function.
32464         (perform_intra_sra): Call sra_modify_function_body to modify the
32465         function body.
32466         (replace_removed_params_ssa_names): Parameter data changed into
32467         adjustments vector.
32468         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
32469         changed the parameter dont_convert to convert with the opposite
32470         meaning.
32471         (sra_ipa_modify_assign): Parameter data changed into adjustments
32472         vector, return value changed to bool.
32473         (ipa_sra_modify_function_body): New function.
32474         (sra_ipa_reset_debug_stmts): Updated a comment.
32475         (modify_function): Use ipa_sra_modify_function_body to modify function
32476         body.
32477
32478 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
32479
32480         PR middle-end/43671
32481         * alias.c (true_dependence): Handle the same VALUE in x and mem.
32482         (canon_true_dependence): Likewise.
32483         (write_dependence_p): Likewise.
32484
32485 2010-05-04  Jan Hubicka  <jh@suse.cz>
32486
32487         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
32488         * cgraphbuild.c: Include ipa-utils.h
32489         (record_reference_ctx): New struct.
32490         (record_reference): Simplify to work on initializers; not statements.
32491         (mark_address, mark_load, mark_store): New.
32492         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
32493         walk PHI nodes too.
32494         (record_references_in_initializer): Update use of record_reference.
32495         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
32496         walk PHI nodes too.
32497
32498 2010-05-04  Jan Hubicka  <jh@suse.cz>
32499
32500         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
32501         node will be removed anyway.
32502         (lto_varpool_replace_node): Allow also unanalyzed nodes;
32503         relink aliases of node into prevailing node.
32504         * varpool.c (varpool_remove_node): Remove aliases properly;
32505         when removing node, remove all its aliases too; remove DECL_INITIAL
32506         of removed node; ggc_free the varpool node.
32507
32508 2010-05-04  Richard Guenther  <rguenther@suse.de>
32509
32510         PR tree-optimization/43879
32511         * tree-ssa-structalias.c (alias_get_name): Use
32512         DECL_ASSEMBLER_NAME if available.
32513         (create_function_info_for): Return the varinfo node.
32514         (ipa_pta_execute): Associate same-body aliases and extra names
32515         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
32516
32517 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
32518
32519         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
32520
32521 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
32522
32523         PR bootstrap/43964
32524         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
32525         only if HONOR_REG_ALLOC_ORDER is not defined.
32526
32527 2010-05-04  Richard Guenther  <rguenther@suse.de>
32528
32529         PR tree-optimization/43949
32530         * tree-vrp.c (extract_range_from_binary_expr): Only handle
32531         TRUNC_MOD_EXPR.
32532
32533 2010-04-26  Jason Merrill  <jason@redhat.com>
32534
32535         * c.opt (-fstrict-enums): New.
32536         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
32537
32538 2010-05-03  David Ung  <davidu@mips.com>
32539             James E. Wilson  <wilson@codesourcery.com>
32540
32541         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
32542         emit the trap instruction before the divide for TUNE_74K.
32543
32544 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
32545
32546         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
32547         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
32548         based on the above, for new target hook.
32549
32550         * hooks.c (hook_bool_mode_true): New generic hook.
32551         * hooks.h (hook_bool_mode_true): Add prototype.
32552
32553         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
32554         target hook.
32555         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
32556         target hook, set to hook_bool_mode_false.
32557         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
32558         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
32559         with targetm.small_register_classes_for_mode_p.
32560         (find_reusable_reload): Likewise.
32561         (combine_reloads): Likewise.
32562         * reload1.c (reload_as_needed): Likewise.
32563         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
32564         * ifcvt.c (noce_process_if_block, check_cond_move_block,
32565         dead_or_predicable): Likewise.
32566         * regmove.c (optimize_reg_copy_1): Likewise.
32567         * calls.c (prepare_call_address): Likewise.
32568         (precompute_register_parameters): Likewise.
32569
32570         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
32571         hook definition.
32572         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
32573         implementation of the hook that considers all register classes
32574         small except for SH64.
32575         (sh_override_options): Use the new hook.
32576         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
32577         Add prototype.
32578
32579         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
32580         hook definition.
32581         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
32582         implementation of the hook that considers all register classes
32583         small for THUMB1.
32584         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
32585         Add prototype.
32586
32587         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
32588         hook definition.
32589         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
32590         implementation of the hook that considers all register classes
32591         small for MIPS16.
32592         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
32593         Add prototype.
32594
32595         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
32596         hook definition.
32597         * config/m32c/m32c.h: Likewise.
32598         * config/pdp11/pdp11.h: Likewise.
32599         * config/avr/avr.h: Likewise.
32600         * config/xtensa/xtensa.h: Likewise.
32601         * config/m68hc11/m68hc11.h: Likewise.
32602         * config/mn10300/mn10300.h: Likewise.
32603         * config/mcore/mcore.h: Likewise.
32604         * config/h8300/h8300.h: Likewise.
32605         * config/bfin/bfin.h: Likewise.
32606
32607         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
32608         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
32609
32610 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
32611
32612         * double-int.h (tree_to_double_int): Remove macro.
32613         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
32614         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
32615         (tree_to_double_int): New function.
32616         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
32617         Move ...
32618         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
32619
32620 2010-05-03  Richard Guenther  <rguenther@suse.de>
32621
32622         PR tree-optimization/43971
32623         * tree-ssa-structalias.c (get_constraint_for_1): Fix
32624         constraints in the !flag_delete_null_pointer_checks case.
32625
32626 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
32627
32628         PR debug/43972
32629         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
32630         result mode matches original rtl mode.
32631
32632 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
32633
32634         PR target/43888
32635         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
32636
32637 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
32638
32639         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
32640         when processing flag options.
32641
32642 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
32643
32644         * gcov-iov.c (main): Change format string placeholder
32645         from %#08x to 0x%08x.
32646         * genchecksum.c (dosum): Change format string placeholder
32647         from %#02x to 0x%02x.
32648
32649 2010-05-02  Richard Guenther  <rguenther@suse.de>
32650
32651         PR tree-optimization/43879
32652         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
32653
32654 2010-05-02  Bruno Haible  <bruno@clisp.org>
32655
32656         * doc/extend.texi (Function Attributes): Fix a typo.
32657
32658 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
32659
32660         Revert:
32661         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
32662         placeholder from 0x%x to %#x.
32663         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
32664         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
32665         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
32666         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
32667         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
32668         * config/i386/i386.c (ix86_target_string): Ditto.
32669         * config/i386/i386.c (output_pic_addr_const): Ditto.
32670         (print_operand): Ditto.
32671
32672 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
32673
32674         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
32675         placeholder from 0x%x to %#x.
32676         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
32677         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
32678         (ASM_OUTPUT_DEBUG_DATA): Ditto.
32679         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
32680         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
32681         * optc-gen.awk: Ditto.
32682         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
32683         (HOST_WIDE_INT_PRINT_HEX): Ditto.
32684         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
32685         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
32686
32687 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
32688
32689         * target.h (struct calls): Add function_value_regno_p field.
32690         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
32691         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
32692         * targhooks.c (default_function_value_regno_p): New function.
32693         * targhooks.h (default_function_value_regno_p): Declare function.
32694         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
32695         * builtins.c. (apply_result_size): (Ditto.).
32696         * combine.c. (likely_spilled_retval_p): (Ditto.).
32697         * mode-switching.c. Include 'target.h'.
32698         (create_pre_exit): Use function_value_regno_p hook.
32699         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
32700         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
32701         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
32702
32703         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
32704         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
32705         (ix86_function_value_regno_p): Declare as static, change argument
32706         type to const unsigned int.
32707         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
32708
32709 2010-05-01  Richard Guenther  <rguenther@suse.de>
32710
32711         PR tree-optimization/43949
32712         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
32713         types.
32714         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
32715
32716 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
32717
32718         * rtl.h (CONST_DOUBLE_P): Define.
32719         (rtx_to_double_int): Declare.
32720         * emit-rtl.c (rtx_to_double_int): New function.
32721         * dwarf2out.c (insert_double): New function.
32722         (loc_descriptor, add_const_value_attribute): Clean up, use
32723         rtx_to_double_int and insert_double functions.
32724
32725 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
32726
32727         * doc/extend.texi (Inline): Add missing return keyword to examples.
32728         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
32729         "command-line".
32730
32731 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
32732
32733         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
32734         the variable part of the offset as well.  Use highest_pow2_factor for
32735         all alignment checks.
32736
32737 2010-04-30  Richard Guenther  <rguenther@suse.de>
32738
32739         PR tree-optimization/43879
32740         * tree-ssa-structalias.c (type_could_have_pointers): Functions
32741         can have pointers.
32742
32743 2010-04-30  Jan Hubicka  <jh@suse.cz>
32744
32745         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
32746         varpool.
32747         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
32748
32749 2010-04-30  Jan Hubicka  <jh@suse.cz>
32750
32751         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
32752         New.
32753         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
32754         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
32755         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
32756         cgraph_node_set_needs_ltrans_p): Remove.
32757
32758 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
32759
32760         * sdbout.c: Include vec.h, do not include varray.h.
32761         (deferred_global_decls, sdbout_global_decl,
32762         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
32763         * toplev.c: Do not include varray.h.
32764         (dump_memory_report): Do not dump VARRAY statistics.
32765         * gengtype.c (open_base_file): Ignore varray.h.
32766         * Makefile.in: Update for abovementioned changes.
32767         Remove all traces of varray.c and varray.h.
32768         * varray.c: Remove file.
32769         * varray.h: Remove file.
32770
32771 2010-04-30  Jan Hubicka  <jh@suse.cz>
32772
32773         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
32774         references.
32775
32776 2010-04-30  Jan Hubicka  <jh@suse.cz>
32777
32778         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
32779         needed.
32780
32781 2010-04-30  Richard Guenther  <rguenther@suse.de>
32782
32783         * tree-ssa-structalias.c (get_constraint_for_1): Generate
32784         constraints for CONSTRUCTOR.
32785
32786 2010-04-30  Richard Guenther  <rguenther@suse.de>
32787
32788         PR lto/43946
32789         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
32790         first after all lowering passes.
32791
32792 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
32793
32794         * toplev.c: Include varray.h for statistics dumping.
32795         * tree.h: Do not declare varray_head_tag.
32796         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
32797         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
32798         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
32799         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
32800         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
32801         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
32802         c-common.c, c-common.h, reg-stack.c, basic-block.h,
32803         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
32804         include varray.h.
32805         * Makefile.in: Update for abovementioned changes.
32806
32807 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
32808
32809         PR debug/43942
32810         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
32811
32812 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
32813
32814         * config/picochip/picochip.c (picochip_legitimize_address): Define.
32815         Use this function to do machine-specific conversion.
32816         (picochip_legitimize_reload_address): Likewise.
32817         (picochip_legitimate_address_p): Check valid base register only if
32818         strict.
32819         (picochip_check_conditional_copy): Check for modw only if opnd is
32820         register.
32821         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
32822         to call the function in c.
32823         * config/picochip/picochip-protos.h
32824         (picochip_legitimize_reload_address): Define.
32825         * config/picochip/picochip.md (supported_compare1): Define.
32826
32827 2010-04-30  Jan Hubicka  <jh@suse.cz>
32828
32829         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
32830         (cgraph_global_info): Remove inlined.
32831         (LTO_cgraph_tag_names): Remove.
32832         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
32833         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
32834         simplify cgraph tags and document.
32835         (lto_output_node): Use only LTO_cgraph_unavail_node and
32836         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
32837         for_functions_valid, global info, process and output flags.
32838         (input_overwrite_node): Initialize estimated stack size and
32839         estimated growth.  Do not read flags we no longer store.
32840         (input_node): Likewise do not read info no longer stored.
32841         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
32842         flag.
32843
32844 2010-04-30  Richard Guenther  <rguenther@suse.de>
32845
32846         PR tree-optimization/43879
32847         * tree-ssa-structalias.c (get_constraint_for_1): Properly
32848         handle non-zero initializers.
32849
32850 2010-04-30  Richard Guenther  <rguenther@suse.de>
32851
32852         * builtins.c (fold_builtin_1): Delete free (0).
32853
32854 2010-04-29  Jan Hubicka  <jh@suse.cz>
32855
32856         * gengtype.c (open_base_files): Add lto-streamer.h
32857         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
32858         (pass_ipa_cp): GGC collect.
32859         * toplev. (compile_file): Do not output symbols.
32860         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
32861         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
32862         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
32863         * lto-section-in.c: Include ggc.h
32864         (lto_new_in_decl_state): Alloc in GGC.
32865         (lto_delete_in_decl_state): Likewise.
32866         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
32867         Collect.
32868
32869 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
32870
32871         PR target/42895
32872         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
32873         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
32874         (HONOR_REG_ALLOC_ORDER): Describe new macro.
32875         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
32876         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
32877         account only if HONOR_REG_ALLOC_ORDER is not defined.
32878         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
32879         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
32880
32881 2010-04-29  Jon Grant  <04@jguk.org>
32882
32883         * collect2.c (vflag): Change type from int to bool.
32884         (debug): Likewise.
32885         (helpflag): New global bool.
32886         (main): Set vflag and debug with boolean, not integer truth values.
32887         Accept new "--help" option and output usage text if found.
32888         * collect2.h (vflag): Update prototype.
32889         (debug): Likewise.
32890
32891 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
32892
32893         PR bootstrap/43936
32894         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
32895
32896 2010-04-29  Richard Guenther  <rguenther@suse.de>
32897
32898         PR bootstrap/43935
32899         * plugin.h (invoke_plugin_callbacks): Annotate arguments
32900         with ATTRIBUTE_UNUSED.
32901
32902 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
32903
32904         PR target/43921
32905         * config/i386/i386.c (get_some_local_dynamic_name): Replace
32906         INSN_P with NONDEBUG_INSN_P.
32907         (distance_non_agu_define): Likewise.
32908         (distance_agu_use): Likewise.
32909
32910 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
32911
32912         From Dominique d'Humieres  <dominiq@lps.ens.fr>
32913         PR bootstrap/43858
32914         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
32915         test_set.
32916
32917 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
32918
32919         * plugin.h (invoke_plugin_callbacks): New inline function.
32920         * plugin.c (flag_plugin_added): New global flag.
32921         (add_new_plugin): Initialize above flag.
32922         (invoke_plugin_callbacks): Rename to ...
32923         (invoke_plugin_callbacks_full): ... this.
32924
32925 2010-04-28  Jan Hubicka  <jh@suse.cz>
32926
32927         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
32928         (lto_varpool_replace_node): New.
32929         (lto_symtab_resolve_symbols): Resolve varpool nodes.
32930         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
32931         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
32932         * cgraph.h (varpool_node_ptr): New type.
32933         (varpool_node_ptr): New vector.
32934         (varpool_node_set_def): New structure.
32935         (varpool_node_set): New type.
32936         (varpool_node_set): New vector.
32937         (varpool_node_set_element_def): New structure.
32938         (varpool_node_set_element, const_varpool_node_set_element): New types.
32939         (varpool_node_set_iterator): New type.
32940         (varpool_node): Add prev pointers, add used_from_other_partition,
32941         in_other_partition.
32942         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
32943         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
32944         varpool_get_node, varpool_remove_node): Declare.
32945         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
32946         varpool_node_set_size): New inlines.
32947         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
32948         * tree-pass.h (varpool_node_set_def): Forward declare.
32949         (ipa_opt_pass_d): Summary writting takes vnode sets too.
32950         (ipa_write_optimization_summaries): Update prototype.
32951         * ipa-cp.c (ipcp_write_summary): Update.
32952         * ipa-reference.c (ipa_reference_write_summary): Update.
32953         * lto-cgraph.c (lto_output_varpool_node): New static function.
32954         (output_varpool): New function.
32955         (input_varpool_node): New static function.
32956         (input_varpool_1): New function.
32957         (input_cgraph): Input varpool.
32958         * ipa-pure-const.c (pure_const_write_summary): Update.
32959         * lto-streamer-out.c (lto_output): Update, output varpool too.
32960         (write_global_stream): Kill WPA hack.
32961         (produce_asm_for_decls): Update.
32962         (output_alias_pair_p): Handle variables.
32963         (output_unreferenced_globals): Output only needed partition of varpool.
32964         * ipa-inline.c (inline_write_summary): Update.
32965         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
32966         cgraph.
32967         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
32968         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
32969         varpool_node_set_new, varpool_node_set_add,
32970         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
32971         debug_varpool_node_set): New functions.
32972         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
32973         (execute_one_pass): Process new decls too.
32974         (ipa_write_summaries_2): Pass around vsets.
32975         (ipa_write_summaries_1): Likewise.
32976         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
32977         to add.
32978         (ipa_write_optimization_summaries_1): Pass around vsets.
32979         (ipa_write_optimization_summaries): Likewise.
32980         * varpool.c (varpool_get_node): New.
32981         (varpool_node): Update doubly linked lists.
32982         (varpool_remove_node): New.
32983         (dump_varpool_node): More dumping.
32984         (varpool_enqueue_needed_node): Update doubly linked lists.
32985         (decide_is_variable_needed): Kill ltrans hack.
32986         (varpool_finalize_decl): Kill lto hack.
32987         (varpool_assemble_decl): Skip decls in other partitions.
32988         (varpool_assemble_pending_decls): Update doubly linkes lists.
32989         (varpool_empty_needed_queue): Likewise.
32990         (varpool_extra_name_alias): Likewise.
32991         * lto-streamer.c (lto_get_section_name): Add vars section.
32992         * lto-streamer.h (lto_section_type): Update.
32993         (output_varpool, input_varpool): Declare.
32994
32995 2010-04-28  Mike Stump  <mikestump@comcast.net>
32996
32997         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
32998
32999 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
33000
33001         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
33002         record or union type with RECORD_OR_UNION_TYPE_P predicate.
33003         (lto_input_ts_type_tree_pointers): Likewise.
33004         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
33005         (lto_output_ts_type_tree_pointers): Likewise.
33006
33007 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
33008
33009         Uniquization of constants at the Tree level
33010         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
33011         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
33012         bit to the end.
33013         (tree_output_constant_def): Declare.
33014         * gimplify.c (gimplify_init_constructor): When using block copy, first
33015         uniquize the constant constructor on the RHS.
33016         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
33017         DECL_IN_CONSTANT_POOL flag.
33018         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
33019         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
33020         constant pool.
33021         (assemble_variable): Deal with symbols belonging to the tree constant
33022         pool.
33023         (get_constant_section): Add ALIGN parameter and simplify.
33024         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
33025         (assemble_constant_contents): Use the expression of the VAR_DECL.
33026         (output_constant_def_contents): Use the alignment of the VAR_DECL.
33027         (tree_output_constant_def): New global function.
33028         (mark_constant): Use the expression of the VAR_DECL.
33029         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
33030         its expression.
33031         (output_object_block): Likewise and assemble the expression.
33032
33033 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
33034
33035         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
33036         hash_tree, eq_tree): New tree hash table.
33037         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
33038         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
33039         lto_orig_address_remove): Reimplement.
33040
33041 2010-04-28  Xinliang David Li  <davidxl@google.com>
33042
33043         PR c/42643
33044         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
33045         (compute_uninit_opnds_pos): New function.
33046         (is_non_loop_exit_postdominating): New function.
33047         (compute_control_dep_chain): New function.
33048         (find_pdom): New function.
33049         (convert_control_dep_chain_into_preds): New function.
33050         (find_predicates): New function.
33051         (find_control_equiv_block): New function.
33052         (collect_phi_def_edges): New function.
33053         (find_def_preds): New function.
33054         (find_dom): New function.
33055         (dump_predicates): New function.
33056         (get_cmp_code): New function.
33057         (is_value_included_in): New function.
33058         (find_matching_predicate_in_rest_chains): New function.
33059         (use_pred_not_overlap_with_undef_path_pred): New function.
33060         (is_use_properly_guarded): New function.
33061         (normalize_cond_1): New function.
33062         (is_and_or_or): New function.
33063         (normalize_cond): New function.
33064         (is_gcond_subset_of): New function.
33065         (is_subset_of_any): New function.
33066         (is_or_set_subset_of): New function.
33067         (is_and_set_subset_of): New function.
33068         (is_norm_cond_subset_of): New function.
33069         (is_pred_expr_subset_of): New function.
33070         (is_pred_chain_subset_of): New function.
33071         (is_included_in): New function.
33072         (is_superset_of): New function.
33073         (find_uninit_use): New function.
33074         (warn_uninitialized_phi): New function.
33075         (compute_possibly_undefined_names): New function.
33076         (ssa_undefined_value_p): New function.
33077         (execute_late_warn_uninitialized): New function.
33078         * tree-ssa.c (ssa_undefined_value_p): Removed.
33079         (warn_uninit): Changed to extern.
33080         (warn_uninitialized_phi): Removed.
33081         (warn_uninitialized_vars): Changed to extern.
33082         (execute_late_warn_uninitialized): Removed
33083         * tree-flow.h: Add new prototypes.
33084         * timevar.def: Add new time variable.
33085         * Makefile.in: Add new build file.
33086
33087 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
33088
33089         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
33090         type if available.
33091
33092 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33093
33094         PR target/22224
33095         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
33096
33097 2010-04-28  Martin Jambor  <mjambor@suse.cz>
33098
33099         * cgraph.h (struct cgraph_node): New field indirect_calls.
33100         (struct cgraph_indirect_call_info): New type.
33101         (struct cgraph_edge): Removed field indirect_call. New fields
33102         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
33103         (cgraph_create_indirect_edge): Declare.
33104         (cgraph_make_edge_direct): Likewise.
33105         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
33106         * ipa-prop.h (struct ipa_param_call_note): Removed.
33107         (struct ipa_node_params): Removed field param_calls.
33108         (ipa_create_all_structures_for_iinln): Declare.
33109         * cgraph.c: Described indirect edges and uids in initial comment.
33110         (cgraph_add_edge_to_call_site_hash): New function.
33111         (cgraph_edge): Search also among the indirect edges, use
33112         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
33113         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
33114         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
33115         site hash.
33116         (initialize_inline_failed): Assign a reason to indirect edges.
33117         (cgraph_create_edge_1): New function.
33118         (cgraph_create_edge): Moved some functionality to
33119         cgraph_create_edge_1.
33120         (cgraph_create_indirect_edge): New function.
33121         (cgraph_edge_remove_callee): Add an assert checking for
33122         non-indirectness.
33123         (cgraph_edge_remove_caller): Special-case indirect edges.
33124         (cgraph_remove_edge): Likewise.
33125         (cgraph_set_edge_callee): New function.
33126         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
33127         (cgraph_make_edge_direct): New function.
33128         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
33129         the declaration of the call statement matches.
33130         (cgraph_node_remove_callees): Special-case indirect edges.
33131         (cgraph_clone_edge): Likewise.
33132         (cgraph_clone_node): Clone also the indirect edges.
33133         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
33134         indirect_call, dump count of indirect_calls edges.
33135         * ipa-prop.c (iinlining_processed_edges): New variable.
33136         (ipa_note_param_call): Create indirect edges instead of
33137         creating notes.  New parameter node.
33138         (ipa_analyze_call_uses): New parameter node, pass it on to
33139         ipa_note_param_call.
33140         (ipa_analyze_stmt_uses): Likewise.
33141         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
33142         (print_edge_addition_message): Work on edges rather than on notes.
33143         (update_call_notes_after_inlining): Likewise, renamed to
33144         update_indirect_edges_after_inlining.
33145         (ipa_create_all_structures_for_iinln): New function.
33146         (ipa_free_node_params_substructures): Do not free notes.
33147         (ipa_edge_duplication_hook): Propagate bits within
33148         iinlining_processed_edges bitmap.
33149         (ipa_node_duplication_hook): Do not duplicate notes.
33150         (free_all_ipa_structures_after_ipa_cp): Renamed to
33151         ipa_free_all_structures_after_ipa_cp.
33152         (free_all_ipa_structures_after_iinln): Renamed to
33153         ipa_free_all_structures_after_iinln.
33154         (ipa_write_param_call_note): Removed.
33155         (ipa_read_param_call_note): Removed.
33156         (ipa_write_indirect_edge_info): New function.
33157         (ipa_read_indirect_edge_info): Likewise.
33158         (ipa_write_node_info): Do not stream notes, do stream information
33159         in indirect edges.
33160         (ipa_read_node_info): Likewise.
33161         (lto_ipa_fixup_call_notes): Removed.
33162         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
33163         * ipa-inline.c (pass_ipa_inline): Likewise.
33164         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
33165         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
33166         * tree-inline.c (copy_bb): Removed an unnecessary double check for
33167         is_gimple_call.
33168         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
33169         edges.
33170         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
33171         (output_cgraph): Stream also indirect edges.
33172         (lto_output_edge): Added capability to stream indirect edges.
33173         (input_edge): Likewise.
33174         (input_cgraph_1): Likewise.
33175         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
33176         of indirect edges.
33177
33178 2010-04-28  Richard Guenther  <rguenther@suse.de>
33179
33180         PR tree-optimization/43879
33181         PR tree-optimization/43909
33182         * tree-ssa-structalias.c (struct variable_info): Add
33183         only_restrict_pointers flag.
33184         (new_var_info): Initialize it.  Increment stats.total_vars here.
33185         (create_function_info_for): Do not increment stats.total_vars here.
33186         (get_function_part_constraint): Fix build with C++.
33187         (insert_into_field_list): Remove.
33188         (push_fields_onto_fieldstack): Properly merge fields.
33189         (create_variable_info_for): Split and simplify.
33190         (create_variable_info_for_1): New piece.
33191         (intra_create_variable_infos): Properly make restrict constraints
33192         from parameters.
33193
33194 2010-04-28  Richard Guenther  <rguenther@suse.de>
33195
33196         PR c++/43880
33197         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
33198
33199 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33200             Jan Hubicka  <hubicka@ucw.cz>
33201
33202         * doc/invoke.texi (-Wsuggest-attribute=const,
33203         -Wsuggest-attribute=pure): Document.
33204         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
33205         (function_always_visible_to_compiler_p,
33206         suggest_attribute, warn_function_pure, warn_function_const):
33207         New functions.
33208         (check_call): Improve debug info.
33209         (analyze_function): Do not check availability.
33210         (add_new_function): Check availability.
33211         (propagate): Output warnings.
33212         (skip_function_for_local_pure_const): New function.
33213         (local_pure_const): Use it; output warnings.
33214         * common.opt (Wsuggest-attribute=const,
33215         Wsuggest-attribute=pure): New.
33216
33217 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
33218
33219         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
33220         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
33221         or DW_CFA_def_cfa_offset{,_sf}.
33222
33223 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
33224
33225         * tree.h: Fix truncated long macros.
33226
33227 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
33228
33229         * collect2.c (TARGET_64BIT): Redefine to target's default.
33230         * tlink.c: Likewise.
33231         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
33232         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
33233         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
33234         for underscoring __USER_LABEL_PREFIX__.
33235         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
33236         (SUB_LINK_ENTRY32): New.
33237         (SUB_LINK_ENTRY64): New.
33238         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
33239         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
33240         (SUB_LINK_ENTRY64): New.
33241         (SUB_LINK_ENTRY): New.
33242         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
33243         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
33244         x64 target is choosen.
33245         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
33246         * configure: Regenerated.
33247         * configure.ac (leading-mingw64-underscores): Option added.
33248
33249 2010-04-27  Jan Hubicka  <jh@suse.cz>
33250
33251         * doc/invoke.texi (-fipa-profile): Document.
33252         * opts.c (decode_options): Enable ipa-profile at -O1.
33253         * timevar.def (TV_IPA_PROFILE): Define.
33254         * common.opt (fipa-profile): Add.
33255         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
33256         flag for clones.
33257         (cgraph_propagate_frequency): Handle only local ones.
33258         * tree-pass.h (pass_ipa_profile): Declare.
33259         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
33260         (pass_ipa_profile): Use TV_IPA_PROFILE.
33261         * ipa.c (ipa_profile): New function.
33262         (gate_ipa_profile): Likewise.
33263         (pass_ipa_profile): New global variable.
33264         * passes.c (pass_ipa_profile): New.
33265
33266 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
33267
33268         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
33269
33270 2010-04-27  Martin Jambor  <mjambor@suse.cz>
33271
33272         PR middle-end/43812
33273         * ipa.c (dissolve_same_comdat_group_list): New function.
33274         (function_and_variable_visibility): Call
33275         dissolve_same_comdat_group_list when comdat group contains external or
33276         newly local nodes.
33277         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
33278         lists are circular and that they contain only DECL_ONE_ONLY nodes.
33279
33280 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
33281
33282         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
33283         (const_hash_1) <VECTOR_CST>: New case.
33284         (compare_constant) <VECTOR_CST>: Likewise.
33285         <ADDR_EXPR>: Deal with LABEL_REFs.
33286         (copy_constant) <VECTOR_CST>: New case.
33287
33288 2010-04-27  Jan Hubicka  <jh@suse.cz>
33289
33290         * cgraph.c (cgraph_propagate_frequency): New function.
33291         * cgraph.h (cgraph_propagate_frequency): Declare.
33292         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
33293         cgraph_propagate_frequency.
33294
33295 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
33296
33297         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
33298
33299 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
33300
33301         PR target/40657
33302         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
33303         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
33304         here to determine which regs to push and how much stack to reserve.
33305
33306 2010-04-27  Jie Zhang  <jie@codesourcery.com>
33307
33308         * doc/gimple.texi (gimple_statement_with_ops): Remove
33309         addresses_taken field.
33310         (gimple_statement_with_memory_ops): Likewise.
33311
33312 2010-04-27  Jan Hubicka  <jh@suse.cz>
33313
33314         * tree-inline.c (eni_inlining_weights): Remove.
33315         (estimate_num_insns): Special case more builtins.
33316
33317 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
33318
33319         PR c/32207
33320         * c-typeck.c (build_binary_op): Move forward check for comparison
33321         pointer with null pointer constant and adjust the diagnostic message.
33322
33323 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
33324
33325         PR lto/42776
33326         * configure.ac (gcc_cv_as_section_has_align): Set if installed
33327         binutils supports extended .section directive needed by LTO, or
33328         warn if older binutils found.
33329         (LTO_BINARY_READER): New AC_SUBST'd variable.
33330         (LTO_USE_LIBELF): Likewise.
33331         * config.gcc (lto_binary_reader): New target-specific configure
33332         variable.
33333         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
33334         (LTO_USE_LIBELF): Likewise.
33335         * configure: Regenerate.
33336
33337         * collect2.c (is_elf): Rename from this ...
33338         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
33339          object files in addition to ELF-formatted ones.
33340         (scan_prog_file): Caller updated.  Also allow for LTO info marker
33341         symbol to be prefixed or not by an extra underscore.
33342
33343         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
33344         * config/i386/winnt.c: Also #include lto-streamer.h
33345         (i386_pe_asm_named_section): Specify 1-byte section alignment for
33346         LTO named sections.
33347         (i386_pe_asm_output_aligned_decl_common): Add comment.
33348         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
33349
33350 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
33351
33352         PR target/43889
33353         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
33354         Add missing earlyclobber for second alternative.
33355
33356 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
33357
33358         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
33359         bits for artificial defs at the top of the block.
33360         * fwprop.c (single_def_use_enter_block): Don't call it.
33361
33362 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
33363
33364         PR 43715
33365         * configure.ac: Use "$gcc_cv_nm -g" on darwin
33366         instead of "$gcc_cv_objdump -T".
33367         Use "-undefined dynamic_lookup" on darwin.
33368         * configure: Regenerate.
33369
33370 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
33371
33372         PR c/43893
33373         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
33374
33375 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
33376
33377         * c-parser.c (struct c_token): Move location field up.
33378         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
33379         (struct c_declspecs): Convert typespec_word, storage_class, and
33380         default_int_p into bitfields.
33381         (struct c_declarator): Move loc field up.
33382
33383 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
33384
33385         * cfgloop.h (struct loop): Move can_be_parallel field up.
33386         * ipa-prop.h (struct ip_node_params): Move bitfields up.
33387         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
33388         down.
33389         (struct iv_cand): Convert pos field into a bitfield.
33390         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
33391         field up.
33392         (struct _stmt_vec_info): Shuffle fields for better packing.
33393
33394 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
33395
33396         * varasm.c (IN_NAMED_SECTION): Remove guard.
33397         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
33398         (IN_NAMED_SECTION_P): ...this.
33399         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
33400         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
33401
33402 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
33403
33404         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
33405         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
33406         of shadowing it.  Fix comments.
33407
33408 2010-04-26  Jan Hubicka  <jh@suse.cz>
33409
33410         * cgraph.c (cgraph_create_node): Set node frequency to normal.
33411         (cgraph_clone_node): Copy function frequency.
33412         * cgraph.h (node_frequency): New enum
33413         (struct cgraph_node): Add.
33414         * final.c (rest_of_clean_state): Update.
33415         * lto-cgraph.c (lto_output_node): Output node frequency.
33416         (input_overwrite_node): Input node frequency.
33417         * tre-ssa-loop-ivopts (computation_cost): Update.
33418         * lto-streamer-out.c (output_function): Do not output function
33419         frequency.
33420         * predict.c (maybe_hot_frequency_p): Update and handle functions
33421         executed once.
33422         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
33423         attribute lookup.
33424         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
33425         (compute_function_frequency): Set noreturn functions to be executed
33426         once.
33427         (choose_function_section): Update.
33428         * lto-streamer-in.c (input_function): Do not input function frequency.
33429         * function.c (allocate_struct_function): Do not initialize function
33430         frequency.
33431         * function.h (function_frequency): Remove.
33432         (struct function): Remove function frequency.
33433         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
33434         (try_update): Update.
33435         * tree-inline.c (initialize_cfun): Do not update function frequency.
33436         * passes.c (pass_init_dump_file): Update.
33437         * i386.c (ix86_compute_frame_layout): Update.
33438         (ix86_pad_returns): Update.
33439
33440 2010-04-26  Jie Zhang  <jie@codesourcery.com>
33441
33442         PR tree-optimization/43833
33443         * tree-vrp.c (range_int_cst_p): New.
33444         (range_int_cst_singleton_p): New.
33445         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
33446         when both operands are constants.  Use range_int_cst_p in
33447         BIT_IOR_EXPR case.
33448
33449 2010-04-26  Jan Hubicka  <jh@suse.cz>
33450
33451         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
33452
33453 2010-04-26  Richard Guenther  <rguenther@suse.de>
33454
33455         PR lto/43080
33456         * gimple.c (gimple_decl_printable_name): Deal gracefully
33457         with a NULL DECL_NAME.
33458
33459 2010-04-26  Richard Guenther  <rguenther@suse.de>
33460
33461         PR lto/42425
33462         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
33463         if emitting debug information and it is either a function
33464         or a namespace decl.
33465
33466 2010-04-26  Ira Rosen  <irar@il.ibm.com>
33467
33468         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
33469         determine if the statement is vectorizable, and a macro to access it.
33470         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
33471         Skip statements that can't be vectorized. If the analysis fails,
33472         mark the statement as unvectorizable if vectorizing basic block.
33473         (vect_compute_data_refs_alignment): Likewise.
33474         (vect_verify_datarefs_alignment): Skip statements marked as
33475         unvectorizable. Add print.
33476         (vect_analyze_group_access): Skip statements that can't be
33477         vectorized. If the analysis fails, mark the statement as
33478         unvectorizable if vectorizing basic block.
33479         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
33480         * tree-vect-stmts.c (vectorizable_store): Fix the number of
33481         generated stmts for SLP.
33482         (new_stmt_vec_info): Initialize the new field.
33483         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
33484         statements marked as unvectorizable.
33485
33486 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
33487
33488         * c-common.c (flag_isoc1x): New.
33489         (flag_isoc99): Update comment.
33490         * c-common.h (flag_isoc1x): New.
33491         (flag_isoc99): Update comment.
33492         * c-cppbuiltin.c (builtin_define_float_constants): Also define
33493         __<type>_DECIMAL_DIG__.
33494         * c-opts.c (set_std_c1x): New.
33495         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
33496         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
33497         * c.opt (-std=c1x, -std=gnu1x): New options.
33498         * doc/cpp.texi: Mention -std=c1x.
33499         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
33500         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
33501         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
33502         * doc/standards.texi: Mention C1X.
33503         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
33504         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
33505         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
33506         Define for C1X.
33507
33508 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
33509
33510         * config/i386/gmon-sol2.c (_mcleanup): Change format string
33511         placeholder from 0x%x to %#x.
33512         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
33513         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
33514         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
33515         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
33516         * config/i386/i386.c (ix86_target_string): Ditto.
33517         (output_pic_addr_const): Ditto.
33518         (print_operand): Ditto.
33519
33520 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
33521
33522         * combine.c (find_split_point): Add third argument.  Use it
33523         to find nested multiply-accumulate instructions.  Adjust calls.
33524         (try_combine): Adjust call to find_split_point.
33525
33526 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
33527
33528         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
33529
33530 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
33531
33532         PR tree-optimization/41442
33533         * fold-const.c (merge_truthop_with_opposite_arm): New function.
33534         (fold_binary_loc): Call it.
33535
33536 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33537
33538         * toplev.c (general_init): Set default for fdiagnostics-show-option.
33539         * opts.c (common_handle_option): Allow disabling it.
33540         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
33541
33542 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
33543
33544         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
33545         between modes if both types are integral.
33546
33547 2010-04-23  Richard Guenther  <rguenther@suse.de>
33548
33549         PR tree-optimization/43572
33550         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
33551
33552 2010-04-23  Richard Guenther  <rguenther@suse.de>
33553
33554         PR lto/43455
33555         * tree-inline.c (tree_can_inline_p): Also check compatibility
33556         of return types.
33557
33558 2010-04-23  Martin Jambor  <mjambor@suse.cz>
33559
33560         PR tree-optimization/43846
33561         * tree-sra.c (struct access): New flag grp_assignment_read.
33562         (build_accesses_from_assign): Set grp_assignment_read.
33563         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
33564         (enum mark_read_status): New type.
33565         (analyze_access_subtree): Propagate grp_assignment_read, create
33566         accesses also if both direct_read and root->grp_assignment_read.
33567
33568 2010-04-23  Martin Jambor  <mjambor@suse.cz>
33569
33570         PR middle-end/43835
33571         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
33572         function does not have type attributes.
33573
33574 2010-04-23  Richard Guenther  <rguenther@suse.de>
33575
33576         PR lto/42653
33577         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
33578         of FUNCTION_DECLs.
33579
33580 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
33581
33582         * sese.h (create_if_region_on_edge): Remove.
33583
33584         * sese.c (create_if_region_on_edge): Make static.
33585
33586         * tree-inline.c: Do not include ggc.h.
33587
33588         * expr.c: Do not include ggc.h.
33589
33590         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
33591         dependencies.
33592
33593 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
33594
33595         PR target/43744
33596         * config/sh/sh.c (find_barrier): Don't emit a constant pool
33597         in the middle of insns for casesi_worker_2.
33598
33599 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
33600
33601         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
33602
33603 2010-04-22  Ira Rosen  <irar@il.ibm.com>
33604
33605         PR tree-optimization/43842
33606         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
33607         loop unrolling in update of exit phis. Fix comment.
33608         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
33609         least two reduction statements in the loop before starting SLP
33610         analysis.
33611
33612 2010-04-22  Nick Clifton  <nickc@redhat.com>
33613
33614         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
33615
33616 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
33617
33618         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
33619         to simplify a + ~a.
33620
33621 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
33622
33623         * tree-parloops.c (loop_parallel_p): New argument
33624         parloop_obstack.  Pass it down.
33625         (parallelize_loops): New variable parloop_obstack.  Initialize it,
33626         pass it down, free it.
33627
33628         * tree-loop-linear.c (linear_transform_loops): Pass down
33629         lambda_obstack.
33630
33631         * tree-data-ref.h (lambda_compute_access_matrices): New argument
33632         of type struct obstack *.
33633
33634         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
33635         scratch_obstack.  Initialize it, pass down, free it.
33636
33637         * lambda.h (lambda_loop_new): Remove.
33638         (lambda_matrix_new, lambda_matrix_inverse)
33639         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
33640         argument of type struct obstack *.
33641
33642         * lambda-trans.c (lambda_trans_matrix_new): New argument
33643         lambda_obstack.  Pass it down, use obstack allocation for ret.
33644         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
33645         it down.
33646
33647         * lambda-mat.c (lambda_matrix_get_column)
33648         (lambda_matrix_project_to_null): Remove.
33649         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
33650         allocation for mat.
33651         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
33652         lambda_obstack.
33653
33654         * lambda-code.c (lambda_loop_new): New function.
33655         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
33656         (lambda_compute_auxillary_space, lambda_compute_target_space)
33657         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
33658         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
33659         (build_access_matrix): New argument lambda_obstack.  Use obstack
33660         allocation for am.
33661         (lambda_compute_step_signs, lambda_compute_access_matrices): New
33662         argument lambda_obstack.  Pass it down.
33663
33664 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
33665
33666         * optabs.h (expand_widening_mult): Declare.
33667
33668 2010-04-22  Richard Guenther  <rguenther@suse.de>
33669
33670         PR tree-optimization/43845
33671         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
33672         lookup the CALL_EXPR function and arguments.
33673
33674 2010-04-22  Nick Clifton  <nickc@redhat.com>
33675
33676         * config/stormy16/stormy16.c
33677         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
33678         * config/stormy16/stormy16.h: Tidy up formatting.
33679         (DONT_USE_BUILTIN_SETJMP): Remove definition.
33680         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
33681         (ineqbranchsi): Delete pattern.
33682         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
33683         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
33684         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
33685         stormy16-lib2-ucmpsi2.c.
33686
33687 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
33688
33689         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
33690         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
33691         extra set merge_set_noclobber, and use it to relax the final test
33692         slightly.
33693         * df.h (df_simulate_find_noclobber_defs): Declare.
33694         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
33695         conditional defs.
33696         (df_simulate_find_noclobber_defs): New function.
33697
33698 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
33699
33700         * config/i386/i386.md: Use {} around multi-line preparation statements.
33701
33702 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
33703
33704         * c-tree.h (push_init_level, pop_init_level, set_init_index)
33705         (process_init_element): New argument of type struct obstack *.
33706
33707         * c-typeck.c (push_init_level, pop_init_level, set_designator)
33708         (set_init_index, set_init_label, set_nonincremental_init)
33709         (set_nonincremental_init_from_string, find_init_member)
33710         (output_init_element, output_pending_init_elements)
33711         (process_init_element): New argument braced_init_obstack.  Pass it
33712         down.
33713         (push_range_stack, add_pending_init): New argument
33714         braced_init_obstack.  Use obstack allocation.
33715
33716         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
33717         braced_init_obstack.  Pass it down.
33718         (c_parser_braced_init): New variables ret, braced_init_obstack.
33719         Initialize obstack, pass it down and finally free it.
33720
33721 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
33722
33723         PR middle-end/29274
33724         * tree-pass.h (pass_optimize_widening_mul): Declare.
33725         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
33726         gate_optimize_widening_mul): New static functions.
33727         (pass_optimize_widening_mul): New.
33728         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
33729         <case MULT_EXPR>: Remove support for widening multiplies.
33730         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
33731         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
33732         simplify_gen_unary rather than directly building extensions.
33733         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
33734         WIDEN_MULT_EXPR.
33735         * expmed.c (expand_widening_mult): New function.
33736         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
33737
33738 2010-04-21  Jan Hubicka  <jh@suse.cz>
33739
33740         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
33741         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
33742         * lto-wpa-fixup.c: Remove.
33743         * Makefile.in (lto-wpa-fixup.o): Remove.
33744         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
33745         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
33746         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
33747
33748 2010-04-21  Jan Hubicka  <jh@suse.cz>
33749
33750         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
33751         add write_optimization_summary, read_optimization_summary.
33752         (ipa_write_summaries_of_cgraph_node_set): Remove.
33753         (ipa_write_optimization_summaries): Declare.
33754         (ipa_read_optimization_summaries): Declare.
33755         * ipa-cp.c (pass_ipa_cp): Update.
33756         * ipa-reference.c (pass_ipa_reference): Update.
33757         * ipa-pure-const.c (pass_ipa_pure_const): Update.
33758         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
33759         Update.
33760         * ipa-inline.c (pass_ipa_inline): Update.
33761         * ipa.c (pass_ipa_whole_program): Update.
33762         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
33763         * passes.c (ipa_write_summaries_1): Do not test wpa.
33764         (ipa_write_optimization_summaries_1): New.
33765         (ipa_write_optimization_summaries): New.
33766         (ipa_read_summaries): Do not test ltrans.
33767         (ipa_read_optimization_summaries_1): New.
33768         (ipa_read_optimization_summaries): New.
33769
33770 2010-04-21  Jan Hubicka  <jh@suse.cz>
33771
33772         * lto-cgraph.c (lto_output_node): Do not output comdat groups
33773         for boundary nodes.
33774         (output_cgraph): Do not arrange comdat groups for boundary nodes.
33775
33776 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
33777
33778         PR debug/40040
33779         * dwarf2out.c (add_name_and_src_coords_attributes): Add
33780         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
33781
33782 2010-04-21  Jan Hubicka  <jh@suse.cz>
33783
33784         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
33785
33786 2010-04-21  Jan Hubicka  <jh@suse.cz>
33787
33788         * varpool.c (decide_is_variable_needed): Variable is always needed
33789         during ltrans.
33790
33791 2010-04-21  Jan Hubicka  <jh@suse.cz>
33792
33793         * opts.c (decode_options): Enable pure-const pass for whopr.
33794
33795 2010-04-21  Jan Hubicka  <jh@suse.cz>
33796
33797         * cgraph.c (dump_cgraph_node): Dump also assembler name.
33798         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
33799         at WPA dumping.
33800         (cgraph_decide_inlining): Do not expect callee to be removed in all
33801         cases.
33802
33803 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
33804
33805         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
33806
33807 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
33808
33809         * config/i386/i386.md (x86_shrd): Add athlon_decode and
33810         amdfam10_decode attributes.
33811
33812 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
33813
33814         PR middle-end/43570
33815         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
33816         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
33817         (lower_copyprivate_clauses): Use private var in outer
33818         context instead of original var.  Make sure the types
33819         are correct for VLAs.
33820
33821 2010-04-21  Richard Guenther  <rguenther@suse.de>
33822
33823         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
33824         to non-pointer objects.
33825
33826 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
33827
33828         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
33829         last chain entry if it starts with the still current label.
33830         (add_location_or_const_value_attribute): Check that
33831         loc_list->first->next is NULL instead of comparing ->first with ->last.
33832         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
33833         to add_var_loc_to_decl.
33834
33835         * dwarf2out.c (output_call_frame_info): For dw_cie_version
33836         >= 4 add also address size and segment size fields into CIE header.
33837
33838         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
33839         long as address size is the same as sizeof (void *) and
33840         segment size is 0.
33841         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
33842         address size or segment size is unexpected, return DW_EH_PE_omit.
33843         (classify_object_over_fdes): If get_cie_encoding returned
33844         DW_EH_PE_omit, return -1.
33845         (init_object): If classify_object_over_fdes returned -1,
33846         pretend there were no FDEs at all.
33847
33848 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
33849
33850         * config/i386/i386.md (bswap<mode>2): Macroize expander from
33851         bswap{si,di}2 using SWI48 mode iterator.
33852         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
33853         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
33854         set modrm attribute of bswap insn to 0 and remove length attribute.
33855         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
33856         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
33857         set mode attribute to <MODE> and remove length attribute.
33858
33859 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
33860
33861         PR rtl-optimization/43520
33862         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
33863         zero available registers.
33864
33865 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
33866
33867         * builtins.c (fold_builtin_cproj): Fold more cases.
33868
33869 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
33870
33871         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
33872         (fold_builtin_1): Fold builtin cproj.
33873         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
33874         Use ATTR_CONST_NOTHROW_LIST.
33875
33876 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
33877
33878         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
33879         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
33880         ffsi2_no_cmove for !TARGET_CMOVE.
33881         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
33882         (ffssi2): Remove expander.
33883         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
33884         mode iterator.
33885         (ctz<mode>2): Ditto from ctz{si,di}2.
33886         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
33887         mode iterator.
33888         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
33889         mode iterator.
33890
33891 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
33892
33893         * dwarf2out.c (AT_linkage_name): Define.
33894         (clone_as_declaration): Handle DW_AT_linkage_name.
33895         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
33896         of DW_AT_MIPS_linkage_name.
33897         (move_linkage_attr): Likewise.
33898         (dwarf2out_finish): Likewise.
33899
33900 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
33901
33902         PR middle-end/41952
33903         * fold-const.c (fold_comparison): New folding rule.
33904
33905 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
33906
33907         * double-int.h (double_int_setbit): Declare.
33908         * double-int.c (double_int_setbit): New function.
33909         * rtl.h (immed_double_int_const): Declare.
33910         * emit-rtl.c (immed_double_int_const): New function.
33911         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
33912         and immed_double_int_const functions.
33913         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
33914         expand_copysign_bit): (Ditto.).
33915         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
33916         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
33917         * dojump.c (prefer_and_bit_test): (Ditto.).
33918         * expr.c (convert_modes, reduce_to_bit_field_precision,
33919         const_vector_from_tree): (Ditto.).
33920         * expmed.c (mask_rtx, lshift_value): (Ditto.).
33921
33922 2010-04-20  Jan Hubicka  <jh@suse.cz>
33923
33924         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
33925         (dump_cgraph_node): Dump new flags.
33926         * cgraph.h (struct cgraph_node): Add flags
33927         reachable_from_other_partition and in_other_partition.
33928         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
33929         other partition can not be removed.
33930         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
33931         the other partition must be output; silence sanity checking on
33932         leaking functions bodies from other paritition.
33933         * lto-cgraph.c (reachable_from_other_partition_p): New function.
33934         (lto_output_node): Output new flags; do not sanity check that inline
33935         clones are output; drop lto_forced_extern_inline_p code; do not mock
33936         visibility flags at partition boundaries.
33937         (add_node_to): New function.
33938         (output_cgraph): Use it to sort functions so masters appear before
33939         clones.
33940         (input_overwrite_node): Input new flags.
33941         * passes.c (ipa_write_summaries): Do not call
33942         lto_new_extern_inline_states.
33943         * lto-section-out.c (forced_extern_inline,
33944         lto_new_extern_inline_states lto_delete_extern_inline_states,
33945         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
33946         * lto-streamer.h (lto_new_extern_inline_states,
33947         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
33948         lto_forced_extern_inline_p): Kill.
33949
33950 2010-04-20  Richard Guenther  <rguenther@suse.de>
33951
33952         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
33953         from vars that can have pointers.
33954         (process_constraint): Dump useless constraints.
33955
33956 2010-04-20  Richard Guenther  <rguenther@suse.de>
33957
33958         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
33959         (dump_sa_points_to_info): Remove asserts.
33960         (init_base_vars): nothing_id isn't an escape point nor does it
33961         have pointers.
33962
33963 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
33964
33965         * tree.h (TYPE_REF_IS_RVALUE): Define.
33966         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
33967         should_move_die_to_comdat, prune_unused_types_walk): Handle
33968         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
33969         (modified_type_die, gen_reference_type_die): Emit
33970         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
33971         if TYPE_REF_IS_RVALUE and -gdwarf-4.
33972
33973 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33974
33975         PR target/43635
33976         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
33977         calls for -fpic -m31 if they have been sibcall optimized.
33978
33979 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
33980
33981         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
33982         ar.lc fixed and call-used.
33983
33984         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
33985
33986 2010-04-19  Jan Hubicka  <jh@suse.cz>
33987
33988         * opts.c (decode_options): Disable whpr incompatible passes.
33989         * lto/lto.c (lto_1_to_1_map): Skip clones.
33990         (read_cgraph_and_symbols): Do not mark everything as needed.
33991         (do_whole_program_analysis): Do map only after optimizing;
33992         set proper cgraph_state; use passmanager.
33993
33994 2010-04-19  DJ Delorie  <dj@redhat.com>
33995
33996         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
33997         POINTER_PLUS_EXPR and fix them.
33998
33999 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
34000
34001         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
34002         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
34003         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
34004         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
34005         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
34006         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
34007         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
34008         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
34009         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
34010         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
34011         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
34012
34013 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
34014
34015         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
34016         (check_cond_move_block): Likewise.
34017         (cond_move_process_if_block): Likewise.
34018         (noce_find_if_block): Improve formatting.
34019         (find_if_header): Pass 0 to memset and tweak conditions.
34020         (cond_exec_find_if_block): Fix long lines and tweak conditions.
34021
34022 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
34023
34024         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
34025         for -gdwarf-4.
34026
34027         PR middle-end/43337
34028         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
34029         with non-local decl doesn't need chain.
34030
34031 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
34032
34033         * ira-color.c (allocno_reload_assign): Avoid accumulating
34034         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
34035
34036 2010-04-19  Martin Jambor  <mjambor@suse.cz>
34037
34038         * gimple.h (create_tmp_reg): Declare.
34039         * gimplify.c (create_tmp_reg): New function.
34040         (gimplify_return_expr): Use create_tmp_reg.
34041         (gimplify_omp_atomic): Likewise.
34042         (gimple_regimplify_operands): Likewise.
34043         * tree-dfa.c (make_rename_temp): Likewise.
34044         * tree-predcom.c (predcom_tmp_var): Likewise.
34045         (reassociate_to_the_same_stmt): Likewise.
34046         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
34047         (get_replaced_param_substitute): Likewise.
34048         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
34049         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
34050         * tree-ssa-pre.c (get_representative_for): Likewise.
34051         (create_expression_by_pieces): Likewise.
34052         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
34053         (create_tailcall_accumulator): Likewise.
34054
34055 2010-04-19  Martin Jambor  <mjambor@suse.cz>
34056
34057         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
34058         new_stmt.
34059         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
34060
34061 2010-04-19  Richard Guenther  <rguenther@suse.de>
34062
34063         PR tree-optimization/43796
34064         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
34065         from SCEV in the lattice.
34066         (vrp_visit_phi_node): Dump change.
34067
34068 2010-04-19  Richard Guenther  <rguenther@suse.de>
34069
34070         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
34071         * configure: Re-generated.
34072
34073 2010-04-19  Richard Guenther  <rguenther@suse.de>
34074
34075         PR tree-optimization/43783
34076         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
34077         constant ARRAY_REF operands two and three if possible.
34078
34079 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
34080
34081         PR target/43766
34082         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
34083
34084 2010-04-19  Jie Zhang  <jie@codesourcery.com>
34085
34086         PR target/43662
34087         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
34088
34089 2010-04-19  Ira Rosen  <irar@il.ibm.com>
34090
34091         PR tree-optimization/37027
34092         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
34093         and macro to access it.
34094         (vectorizable_reduction): Add argument.
34095         (vect_get_slp_defs): Likewise.
34096         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
34097         statements for possible use in SLP.
34098         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
34099         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
34100         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
34101         add new argument.
34102         (vectorizable_reduction): Likewise.
34103         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
34104         vect_get_slp_defs.
34105         (vectorizable_type_demotion, vectorizable_type_promotion,
34106         vectorizable_store): Likewise.
34107         (vect_analyze_stmt): Update call to vectorizable_reduction.
34108         (vect_transform_stmt): Likewise.
34109         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
34110         (vect_build_slp_tree): Fix indentation. Check that there are no loads
34111         from different interleaving chains in same node.
34112         (vect_slp_rearrange_stmts): New function.
34113         (vect_supported_load_permutation_p): Allow load permutations for
34114         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
34115         inside SLP nodes if necessary.
34116         (vect_analyze_slp_instance): Handle reductions.
34117         (vect_analyze_slp): Try to build SLP instances originating from groups
34118         of reductions.
34119         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
34120         (vect_get_constant_vectors): Create initial vectors for reductions
34121         according to reduction code. Add new argument.
34122         (vect_get_slp_defs): Add new argument, pass it to
34123         vect_get_constant_vectors.
34124         (vect_schedule_slp_instance): Remove SLP tree root statements.
34125
34126 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
34127
34128         * tree.h (ENUM_IS_SCOPED): Define.
34129         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
34130         for ENUM_IS_SCOPED enums.
34131
34132 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
34133
34134         * fold-const.c (fold_comparison): Use ssizetype.
34135         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
34136         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
34137         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
34138         * tree-object-size.c (compute_object_sizes): Use size_type_node.
34139
34140         * tree.h (initialize_sizetypes): Remove parameter.
34141         (build_common_tree_nodes): Remove second parameter.
34142         * stor-layout.c (initialize_sizetypes): Remove parameter.
34143         Always create an unsigned type.
34144         (set_sizetype): Assert that the passed type is unsigned and simplify.
34145         * tree.c (build_common_tree_nodes): Remove second parameter.
34146         Adjust call to initialize_sizetypes.
34147         * c-decl.c (c_init_decl_processing): Remove second argument in call to
34148         build_common_tree_nodes.
34149
34150 2010-04-18  Matthias Klose  <doko@ubuntu.com>
34151
34152         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
34153
34154 2010-04-18  Ira Rosen  <irar@il.ibm.com>
34155
34156         PR tree-optimization/43771
34157         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
34158         load permutation doesn't have gaps.
34159
34160 2010-04-18  Jan Hubicka  <jh@suse.cz>
34161
34162         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
34163         (sse_prologue_save_insn expander): Use new pattern.
34164         (sse_prologue_save_insn1): New pattern and splitter.
34165         (sse_prologue_save_insn): Update to deal also with 64bit aligned
34166         blocks.
34167         * i386.c (setup_incoming_varargs_64): Do not compute jump
34168         destination here.
34169         (ix86_gimplify_va_arg): Update alignment needed.
34170         (ix86_local_alignment): Do not align all local arrays to 128bit.
34171
34172 2010-04-17  Jan Hubicka  <jh@suse.cz>
34173
34174         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
34175
34176 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
34177
34178         * arm.md (negdi2): Remove redundant code to force values into a
34179         register.
34180
34181 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
34182
34183         * arm/bpabi.S: Add EABI alignment attributes to objects.
34184         * arm/bpabi-v6m.S: Likewise.
34185         * arm/crti.asm: Likewise.
34186         * arm/crtn.asm: Likewise.
34187         * arm/lib1funcs.asm: Likewise.
34188         * arm/libunwind.S: Likewise.
34189
34190 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
34191
34192         * arm-protos.h (tune_params): New structure.
34193         * arm.c (current_tune): New variable.
34194         (arm_constant_limit): Delete.
34195         (struct processors): Add pointer to the tune parameters.
34196         (arm_slowmul_tune): New tuning option.
34197         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
34198         (all_cores): Adjust to pick up the tuning model.
34199         (arm_constant_limit): New function.
34200         (arm_override_options): Select the appropriate tuning model.  Delete
34201         initialization of arm_const_limit.
34202         (arm_split_constant): Use the new constant-limit model.
34203         (arm_rtx_costs): Pick up the current tuning model.
34204         * arm.md (is_strongarm, is_xscale): Delete.
34205         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
34206         for Xscale variant architectures.
34207         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
34208
34209 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34210
34211         * config/arm/arm.c (arm_gen_constant): Remove unused variable
34212         can_shift.
34213         (arm_rtx_costs_1): Remove unused variable extra_cost.
34214         (arm_unwind_emit_set): Use variable offset.
34215         (thumb1_output_casesi): Remove unused variable flags.
34216
34217 2010-04-16  Jeff Law  <law@redhat.com>
34218
34219         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
34220         needing assignment rather than doing a two-phase assignment.  Remove
34221         unused variable 'm'.
34222
34223 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
34224
34225         PR bootstrap/43767
34226         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
34227
34228 2010-04-16  Doug Kwan  <dougkwan@google.com>
34229
34230         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
34231         (next_operand_entry_id): New static variable.
34232         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
34233         (add_to_ops_vec): Assigned unique ID to operand entry.
34234         (struct oecount_s): New field ID.
34235         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
34236         (undistribute_ops_list): Assign unique IDs to oecounts.
34237         (init_reassoc): reset next_operand_entry_id.
34238
34239 2010-04-16  Doug Kwan  <dougkwan@google.com>
34240
34241         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
34242         missing left parenthesis.
34243
34244 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
34245
34246         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
34247         *btdi_rex64 using SWI48 mode iterator.
34248         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
34249         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
34250         *jcc_btdi_mask_rex64.
34251
34252 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
34253
34254         * double-int.h (tree_to_double_int): Convert to macro.
34255         * double-int.c (tree_to_double_int): Remove.
34256
34257 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
34258
34259         PR debug/43762
34260         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
34261         with want_address 2 and in case a single element list might be
34262         possible, call it again with want_address 0.
34263
34264 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
34265
34266         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
34267         case 'W' print operands for HI mode.
34268         * config/h8300/h8300.h (Y0, Y2) : New constraints.
34269         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
34270         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
34271         * config/h8300/predicate.md (bit_register_indirect_operand): New.
34272
34273         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
34274
34275         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
34276         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
34277         #xx:3 and #xx:4 mode.
34278
34279         * config/h8300/h8300.md (inverted load with HImode dest): Add
34280         support for H8300SX.
34281
34282         * config/h8300/predicate.md (bit_operand): Allow immediate values that
34283         satisfy 'U' constraint.
34284
34285 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34286
34287         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
34288         * configure: Regenerate.
34289         * config.in: Regenerate.
34290         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
34291         works.
34292
34293 2010-04-16  Richard Guenther  <rguenther@suse.de>
34294
34295         * tree.h (struct tree_decl_minimal): Move pt_uid ...
34296         (struct tree_decl_common): ... here.
34297         (DECL_PT_UID): Adjust.
34298         (SET_DECL_PT_UID): Likewise.
34299         (DECL_PT_UID_SET_P): Likewise.
34300
34301 2010-04-16  Richard Guenther  <rguenther@suse.de>
34302
34303         PR tree-optimization/43572
34304         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
34305         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
34306         * tree-flow.h (is_call_clobbered): Remove.
34307         * tree-flow-inline.h (is_call_clobbered): Likewise.
34308         * tree-dfa.c (dump_variable): Do not dump call clobber state.
34309         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
34310         (execute_return_slot_opt): Adjust.
34311         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
34312         check for call clobbered vars here.
34313         (find_tail_calls): Move tailcall verification to the
34314         proper place.
34315
34316 2010-04-16  Diego Novillo  <dnovillo@google.com>
34317
34318         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
34319
34320 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
34321
34322         PR target/40603
34323         * config/arm/arm.md (cbranchqi4): New pattern.
34324         * config/arm/predicates.md (const0_operand,
34325         cbranchqi4_comparison_operator): New predicates.
34326
34327 2010-04-16  Richard Guenther  <rguenther@suse.de>
34328
34329         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
34330         (dump_gimple_stmt): Likewise.
34331
34332 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
34333
34334         * recog.h (struct recog_data): New field is_operator.
34335         (struct insn_operand_data): New field is_operator.
34336         * recog.c (extract_insn): Set recog_data.is_operator.
34337         * genoutput.c (output_operand_data): Emit code to set the
34338         is_operator field.
34339         * reload.c (find_reloads): Use it rather than testing for an
34340         empty constraint string.
34341
34342         PR target/41514
34343         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
34344         If the previous insn is a cbranchsi4_insn with the same arguments,
34345         omit the compare instruction.
34346
34347         * config/arm/arm.md (addsi3_cbranch): If destination is a high
34348         register, inputs must be low registers and we need a low register
34349         scratch.  Handle alternative 2 like alternative 3.
34350
34351 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
34352
34353         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
34354         don't call get_addr on both.  If one expression is a VALUE and
34355         the other a REG, check VALUE's locs if the REG isn't among them.
34356
34357 2010-04-16  Christian Bruel  <christian.bruel@st.com>
34358
34359         * config/sh/sh.h (sh_frame_pointer_required): New function.
34360         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
34361         (flag_omit_frame_pointer) Set.
34362         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
34363         (rounded_frame_size): Adjust size with outgoing_args_size.
34364         (sh_set_return_address): Must return from stack pointer.
34365         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
34366         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
34367         (ACCUMULATE_OUTGOING_ARGS): Define.
34368         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
34369         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
34370
34371 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
34372
34373         PR target/43471
34374         * config/sh/sh.c (sh_legitimize_reload_address): Use
34375         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
34376         Remove a unneeded check for offset_base.
34377
34378 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
34379
34380         * configure: Regenerated.
34381
34382 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34383
34384         * config/s390/s390.c (s390_call_save_register_used): Switch back
34385         to HARD_REGNO_NREGS.
34386
34387 2010-04-15  Richard Guenther  <rguenther@suse.de>
34388
34389         * alias.c (alias_set_subset_of): Handle alias-set zero
34390         child properly.
34391
34392 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
34393             Julian Brown  <julian@codesourcery.com>
34394
34395         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
34396         alternatives according to use of high and low regs.
34397         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
34398         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
34399         optimizing for size on Thumb-2.
34400
34401 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
34402
34403         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
34404
34405 2010-04-15  Richard Guenther  <rguenther@suse.de>
34406
34407         * tree-ssa-structalias.c (struct variable_info): Add
34408         is_fn_info flag.
34409         (new_var_info): Initialize it.
34410         (dump_constraints): Support printing last added constraints.
34411         (debug_constraints): Adjust.
34412         (dump_constraint_graph): Likewise.
34413         (make_heapvar_for): Check for NULL cfun.
34414         (get_function_part_constraint): New function.
34415         (get_fi_for_callee): Likewise.
34416         (find_func_aliases): Properly implement IPA PTA constraints.
34417         (process_ipa_clobber): New function.
34418         (find_func_clobbers): Likewise.
34419         (insert_into_field_list_sorted): Remove.
34420         (create_function_info_for): Properly allocate vars for IPA mode.
34421         Do not use insert_into_field_list_sorted.
34422         (create_variable_info_for): Properly generate constraints for
34423         global vars in IPA mode.
34424         (dump_solution_for_var): Always dump the solution.
34425         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
34426         (find_what_var_points_to): Adjust.
34427         (pt_solution_set): Change.
34428         (pt_solution_ior_into): New function.
34429         (pt_solution_empty_p): Export.
34430         (pt_solution_includes_global): Adjust.
34431         (pt_solution_includes_1): Likewise.
34432         (pt_solutions_intersect_1): Likewise.
34433         (dump_sa_points_to_info): Check some invariants.
34434         (solve_constraints): Move constraint dumping ...
34435         (compute_points_to_sets): ... here.
34436         (ipa_pta_execute): ... and here.
34437         (compute_may_aliases): Do not re-compute points-to info
34438         locally if IPA info is available.
34439         (ipa_escaped_pt): New global var.
34440         (ipa_pta_execute): Properly implement IPA PTA.
34441         * tree-into-ssa.c (dump_decl_set): Support dumping
34442         decls not in referenced-vars.
34443         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
34444         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
34445         (dump_points_to_solution): Likewise.
34446         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
34447         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
34448         (remap_gimple_stmt): Reset call clobber/use information if necessary.
34449         (copy_decl_to_var): Copy DECL_PT_UID.
34450         (copy_result_decl_to_var): Likewise.
34451         * tree.c (make_node_stat): Initialize DECL_PT_UID.
34452         (copy_node_stat): Copy it.
34453         * tree.h (DECL_PT_UID): New macro.
34454         (SET_DECL_PT_UID): Likewise.
34455         (DECL_PT_UID_SET_P): Likewise.
34456         (struct tree_decl_minimal): Add pt_uid member.
34457         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
34458         (pt_solution_empty_p): Declare.
34459         (pt_solution_set): Adjust.
34460         (ipa_escaped_pt): Declare.
34461         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
34462         * gimple-pretty-print.c (pp_points_to_solution): New function.
34463         (dump_gimple_call): Dump call clobber/use information.
34464         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
34465         * tree-pass.h (TDF_ALIAS): New dump option.
34466         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
34467         * doc/invoke.texi (-fipa-pta): Update documentation.
34468
34469 2010-04-15  Richard Guenther  <rguenther@suse.de>
34470
34471         * Makefile.in (OBJS-common): Add gimple-fold.o.
34472         (gimple-fold.o): New rule.
34473         * tree.h (maybe_fold_offset_to_reference,
34474         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
34475         prototypes ...
34476         * gimple.h: ... here.
34477         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
34478         may_propagate_address_into_dereference): Move prototypes ...
34479         * gimple.h: ... here.
34480         * tree-ssa-ccp.c (get_symbol_constant_value,
34481         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
34482         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
34483         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
34484         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
34485         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
34486         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
34487         gimplify_and_update_call_from_tree): Move ...
34488         * gimple-fold.c: ... here.  New file.
34489         (ccp_fold_builtin): Rename to ...
34490         (gimple_fold_builtin): ... this.
34491         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
34492
34493 2010-04-15  Richard Guenther  <rguenther@suse.de>
34494
34495         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
34496         fit_double_type, force_fit_type_double, add_double_with_sign,
34497         neg_double, mul_double_with_sign, lshift_double, rshift_double,
34498         lrotate_double, rrotate_double, div_and_round_double): Move ...
34499         * double-int.c: ... here.
34500         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
34501         add_double, neg_double, mul_double_with_sign, mul_double,
34502         lshift_double, rshift_double, lrotate_double, rrotate_double,
34503         div_and_round_double): Move prototypes ...
34504         * double-int.h: ... here.
34505
34506 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
34507
34508         PR target/43742
34509         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
34510         matching constraints to ensure inputs match the output.
34511
34512 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
34513
34514         PR target/43742
34515         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
34516         in an input-only operand.
34517
34518 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
34519
34520         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
34521         (double_int_not, double_int_lshift, double_int_rshift): Declare.
34522         (double_int_negative_p): Convert to static inline function.
34523         * double-int.c (double_int_lshift, double_int_lshift): New functions.
34524         (double_int_negative_p): Remove.
34525         * tree.h (lshift_double, rshift_double):
34526         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
34527         * fold-const.c (fold_convert_const_int_from_real,
34528         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
34529         (lshift_double): Change type of arith argument to bool.
34530         (rshift_double): Change type of arith argument to bool. Correct
34531         comment.
34532         * expmed.c (mask_rtx, lshift_value): (Ditto.).
34533
34534 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
34535
34536         PR target/21803
34537         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
34538         at the start and end of the then/else blocks, and omit them from the
34539         conversion.
34540         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
34541         argument; all callers changed.  Pass zero to old_insns_match_p instead.
34542         (flow_find_head_matching_sequence): New function.
34543         (old_insns_match_p): Check REG_EH_REGION notes for calls.
34544         * basic-block.h (flow_find_cross_jump,
34545         flow_find_head_matching_sequence): Declare functions.
34546
34547 2010-04-14  Jason Merrill  <jason@redhat.com>
34548
34549         PR c++/36625
34550         * c-common.c (attribute_takes_identifier_p): New fn.
34551         * c-common.h: Declare it.
34552
34553 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34554
34555         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
34556         splitter condition.
34557         (*udivmod<mode>4): Ditto.
34558
34559 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34560
34561         * config/i386/i386.md (maxmin_int): Rename code attribute from
34562         maxminiprefix and update all users.
34563         (maxmin_float): Ditto from maxminfprefix.
34564         (logic): Ditto from logicprefix.
34565         (absneg_mnemonic): Ditto from absnegprefix.
34566         * config/i386/mmx.md: Update all users of maxminiprefix,
34567         maxminfprefix and logicprefix for rename.
34568         * config/i386/sse.md: Ditto.
34569         * config/i386/sync.md (sync_<code><mode>): Update for
34570         logicprefix rename.
34571
34572 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34573
34574         PR 42966
34575         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
34576         warnings converted to errors.
34577
34578 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34579
34580         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
34581         used insn_type variable.
34582         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
34583         to avoid set-but-not-used warning.
34584
34585 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34586
34587         * df-core.c (df_ref_debug): Change format string placeholder
34588         from 0x%x to %#x.
34589         * dwarf2asm.c (dw2_asm_output_data_raw,
34590         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
34591         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
34592         * dwarf2out.c (output_cfi, output_cfi_directive,
34593         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
34594         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
34595         Ditto.
34596         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
34597         * print-rtl.c (print_rtx): Ditto.
34598
34599 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
34600
34601         PR middle-end/42694
34602         * builtins.c (expand_builtin_pow_root): New function to expand pow
34603         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
34604         series of sqrt and cbrt calls under -ffast-math.
34605         (expand_builtin_pow): Call it.
34606
34607 2010-04-14  Michael Matz  <matz@suse.de>
34608
34609         PR tree-optimization/42963
34610         * tree-cfg.c (touched_switch_bbs): New static variable.
34611         (group_case_labels_stmt): New function broken out from ...
34612         (group_case_labels): ... here, use the above.
34613         (start_recording_case_labels): Allocate touched_switch_bbs.
34614         (end_recording_case_labels): Deallocate it, call
34615         group_case_labels_stmt.
34616         (gimple_redirect_edge_and_branch): Remember index of affected BB.
34617
34618 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34619
34620         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
34621         from insn template.
34622
34623 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34624
34625         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
34626
34627 2010-04-13  Jan Hubicka  <jh@suse.cz>
34628
34629         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
34630         of optimized out static functions.
34631         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
34632         cost computation.  Also sanity check for overflows.
34633         (update_caller_keys): Update cgraph_edge_badness call; properly
34634         update fibheap and sanity check that it is up to date.
34635         (add_new_edges_to_heap): Update cgraph_edge_badness.
34636         (cgraph_decide_inlining_of_small_function): Likewise;
34637         add sanity checking that badness in heap is up to date;
34638         improve dumping of reason; Update badness of calls to the
34639         offline copy of function currently inlined; dump badness
34640         of functions not inlined because of unit growth limits.
34641
34642 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
34643
34644         PR middle-end/32628
34645         * c-common.c (pointer_int_sum): Disregard overflow that occured only
34646         because of sign-extension change when converting to sizetype here...
34647         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
34648
34649         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
34650         the folding to constants.  Remove redundant final conversion.
34651         (fold_binary) <associate>: Do not associate if the re-association of
34652         constants alone overflows.
34653         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
34654         to the end of the list.
34655         (multiple_of_p) <COND_EXPR>: New case.
34656
34657 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34658
34659         * opt-functions.awk (opt_sanitized_name): New.
34660         (opt_enum): New.
34661         * optc-gen.awk: Use it
34662         * opth-gen.awk: Use it.
34663
34664 2010-04-13  Martin Jambor  <mjambor@suse.cz>
34665
34666         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
34667         (sra_modify_assign): Delete stmts loading dead data even if racc has no
34668         children.  Call replace_uses_with_default_def_ssa_name to handle
34669         SSA_NAES on lhs.
34670
34671 2010-04-13  Michael Matz  <matz@suse.de>
34672
34673         PR middle-end/43730
34674         * builtins.c (expand_builtin_interclass_mathfn): Also create
34675         a register if the predicate doesn't match.
34676
34677 2010-04-13  Diego Novillo  <dnovillo@google.com>
34678
34679         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
34680         * c-pch.c: Include timevar.h.
34681         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
34682         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
34683         * ggc-common.c: Include timevar.h.
34684         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
34685         * timevar.def (TV_PCH_SAVE): Define.
34686         (TV_PCH_CPP_SAVE): Define.
34687         (TV_PCH_PTR_REALLOC): Define.
34688         (TV_PCH_PTR_SORT): Define.
34689         (TV_PCH_RESTORE): Define.
34690         (TV_PCH_CPP_RESTORE): Define.
34691
34692 2010-04-13  Michael Matz  <matz@suse.de>
34693
34694         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
34695         into MINUS_EXPRs.
34696         (can_reassociate_p): New function.
34697         (break_up_subtract_bb, reassociate_bb): Use it.
34698
34699 2010-04-13  Richard Guenther  <rguenther@suse.de>
34700
34701         PR bootstrap/43737
34702         * builtins.c (c_readstr): Fix assert.
34703
34704 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
34705
34706         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
34707         when generating cltd insn.
34708
34709         (*ashl<mode>3_1): Remove special handling for register operand 2.
34710         (*ashlsi3_1_zext): Ditto.
34711         (*ashlhi3_1): Ditto.
34712         (*ashlhi3_1_lea): Ditto.
34713         (*ashlqi3_1): Ditto.
34714         (*ashlqi3_1_lea): Ditto.
34715         (*<shiftrt_insn><mode>3_1): Ditto.
34716         (*<shiftrt_insn>si3_1_zext): Ditto.
34717         (*<shiftrt_insn>qi3_1_slp): Ditto.
34718         (*<rotate_insn><mode>3_1): Ditto.
34719         (*<rotate_insn>si3_1_zext): Ditto.
34720         (*<rotate_insn>qi3_1_slp): Ditto.
34721
34722 2010-04-13  Richard Guenther  <rguenther@suse.de>
34723
34724         * tree-ssa-structalias.c (callused_id): Remove.
34725         (call_stmt_vars): New.
34726         (get_call_vi): Likewise.
34727         (lookup_call_use_vi): Likewise.
34728         (lookup_call_clobber_vi): Likewise.
34729         (get_call_use_vi): Likewise.
34730         (get_call_clobber_vi): Likewise.
34731         (make_transitive_closure_constraints): Likewise.
34732         (handle_const_call): Adjust to do per-call call-used handling.
34733         (handle_pure_call): Likewise.
34734         (find_what_var_points_to): Remove general callused handling.
34735         (init_base_vars): Likewise.
34736         (init_alias_vars): Initialize call_stmt_vars.
34737         (compute_points_to_sets): Process call-used and call-clobbered
34738         vars for call statements.
34739         (delete_points_to_sets): Free call_stmt_vars.
34740
34741 2010-04-13  Richard Guenther  <rguenther@suse.de>
34742
34743         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
34744         Only add RW dependence for dependence distance zero.
34745         Adjust maximal vectorization factor according to dependences.
34746         Move alignment handling ...
34747         (vect_find_same_alignment_drs): ... here.  New function.
34748         (vect_analyze_data_ref_dependences): Adjust.
34749         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
34750         (vect_analyze_data_refs): Adjust minimal vectorization factor
34751         according to data references.
34752         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
34753         dependences before determining the vectorization factor.
34754         Analyze alignment after determining the vectorization factor.
34755         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
34756         dependences before alignment.
34757         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
34758         Adjust prototype.
34759         (vect_analyze_data_refs): Likewise.
34760         (MAX_VECTORIZATION_FACTOR): New define.
34761
34762 2010-04-13  Duncan Sands  <baldrick@free.fr>
34763
34764         * except.h (lang_eh_type_covers): Remove.
34765         * except.c (lang_eh_type_covers): Likewise.
34766
34767 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34768             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
34769
34770         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
34771         * config/s390/s390.c: Replace UNTIS_PER_WORD with
34772         UNITS_PER_LONG where it is ABI relevant.
34773         (s390_return_addr_rtx): Likewise.
34774         (s390_back_chain_rtx): Likewise.
34775         (s390_frame_area): Likewise.
34776         (s390_frame_info): Likewise.
34777         (s390_initial_elimination_offset): Likewise.
34778         (save_gprs): Likewise.
34779         (s390_emit_prologue): Likewise.
34780         (s390_emit_epilogue): Likewise.
34781         (s390_function_arg_advance): Likewise.
34782         (s390_function_arg): Likewise.
34783         (s390_va_start): Likewise.
34784         (s390_gimplify_va_arg): Likewise.
34785         (s390_function_profiler): Likewise.
34786         (s390_optimize_prologue): Likewise.
34787         (s390_rtx_costs): Likewise.
34788         (s390_secondary_reload): Likewise.
34789         (s390_promote_function_mode): Likewise.
34790         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
34791         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
34792         registers available.
34793         (s390_unwind_word_mode): New function.
34794         (s390_function_value): Split 64 bit values into register pair if
34795         used as return value.
34796         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
34797         function call parameters.  Handle parallels.
34798         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
34799         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
34800         (DWARF_CIE_DATA_ALIGNMENT): New macro.
34801         (s390_expand_setmem): Remove unused variable src_addr.
34802         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
34803         deal with 64 bit registers.
34804         * config/s390/s390.h: Define __zarch__ predefined macro.
34805         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
34806         (UNITS_PER_LONG): New macro.
34807         * libjava/include/s390-signal.h: Define extended ucontext
34808         structure containing the upper halfs of the 64 bit registers.
34809
34810 2010-04-13  Simon Baldwin  <simonb@google.com>
34811
34812         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
34813
34814 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
34815
34816         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
34817         rvalue on the RHS if the LHS is of a non-renamable type.
34818         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
34819
34820 2010-04-13  Matthias Klose  <doko@ubuntu.com>
34821
34822         * gcc.c (cc1_options): Handle -iplugindir before processing
34823         the cc1 spec. Only add -iplugindir once.
34824         (cpp_unique_options): Add -iplugindir option if -fplugin* options
34825         found.
34826         * common.opt (iplugindir): Remove `Separate' property, initialize.
34827         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
34828         option.
34829         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
34830         (distclean): Remove plugin dir.
34831         * doc/invoke.texi: Document -iplugindir.
34832
34833 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
34834
34835         * doc/plugins.texi (Loading Plugins): Document short
34836         -fplugin=foo option.
34837         (Plugin API): Mention default_plugin_dir_name function.
34838
34839         * gcc.c (find_file_spec_function): Add new declaration.
34840         (static_spec_func): Use it for "find-file".
34841         (find_file_spec_function): Add new function.
34842         (cc1_options): Add -iplugindir option if -fplugin* options found.
34843
34844         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
34845
34846         * plugin.c (add_new_plugin): Updated comment, and handle short
34847         plugin name.
34848         (default_plugin_dir_name): Added new function.
34849
34850         * common.opt (iplugindir): New option to set the plugin directory.
34851
34852 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
34853
34854         * config/i386/i386.md (any_rotate): New code iterator.
34855         (rotate_insn): New code attribute.
34856         (rotate): Ditto.
34857         (SWIM124): New mode iterator.
34858         (<rotate_insn>ti3): New expander.
34859         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
34860         any_rotate code iterator.
34861         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
34862         using any_rotate code iterator and SWIM124 mode iterator.
34863         (ix86_rotlti3): New insn_and_split pattern.
34864         (ix86_rotrti3): Ditto.
34865         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
34866         ix86_rotl{di,ti}3 patterns.
34867         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
34868         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
34869         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
34870         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
34871         code iterator and SWI mode iterator.
34872         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
34873         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
34874         code iterator.
34875         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
34876         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
34877         (bswap rotatert splitter): Add splitter.
34878         (bswap splitter): Macroize splitter using any_rotate code iterator.
34879         Add insn predicate to split only for TARGET_USE_XCHGB or when
34880         optimizing function for size.
34881
34882 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
34883
34884         * config/pa/pa.c (emit_move_sequence): Remove use of
34885         deleted variable flag_argument_noalias.
34886
34887 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34888
34889         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
34890         configurations.
34891         Add to unsupported targets list.
34892         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
34893         sparc*-sun-solaris2.[567]* from target lists.
34894         * configure: Regenerate.
34895         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
34896         removal.
34897         Remove Solaris 7 patch references.
34898         (Specific, sparc-sun-solaris2.7): Removed.
34899         (sparc-sun-solaris2*): Update Solaris 7 example.
34900         (sparc64-*-solaris2*): Likewise.
34901
34902 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34903
34904         * config.build (alpha*-dec-osf4*): Remove.
34905         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
34906         of obsolete configurations.
34907         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
34908         support.
34909         * config/alpha/t-osf4: Renamed to ...
34910         * config/alpha/t-osf5: ... this.
34911         * config/alpha/osf.h: Renamed to ...
34912         * config/alpha/osf5.h: ... this.
34913         Merged old osf5.h contents.
34914         Update comments.
34915         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
34916         (EXTRA_SPECS): Removed.
34917         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
34918         reflect removal of Tru64 UNIX V4.0/V5.0 support.
34919         Document that.
34920
34921 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34922
34923         * doc/contrib.texi (Contributors, Rainer Orth): Update.
34924
34925 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
34926
34927         PR/43702
34928         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
34929         __thiscall convention.
34930
34931 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
34932
34933         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
34934         orig_base.
34935         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
34936
34937 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
34938
34939         * function.c (assign_parms_initialize_all): Add unused attribute
34940         to fntype.
34941
34942 2010-04-12  Richard Guenther  <rguenther@suse.de>
34943
34944         * gsstruct.def (GSS_CALL): New.
34945         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
34946         * gimple.h: Include tree-ssa-alias.h.
34947         (struct gimple_statement_call): New.
34948         (union gimple_statement_struct_d): Add gimple_call member.
34949         (gimple_call_reset_alias_info): Declare.
34950         (gimple_call_use_set): New function.
34951         (gimple_call_clobber_set): Likewise.
34952         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
34953         * gimple.c (gimple_call_reset_alias_info): New function.
34954         (gimple_build_call_1): Call it.
34955         * lto-streamer-in.c (input_gimple_stmt): Likewise.
34956         * tree-inline.c (remap_gimple_stmt): Likewise.
34957         (expand_call_inline): Remove callused handling.
34958         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
34959         * tree-dfa.c (dump_variable): Likewise.
34960         * tree-parloops.c (parallelize_loops): Likewise.
34961         * tree-ssa.c (init_tree_ssa): Likewise.
34962         (delete_tree_ssa): Likewise.
34963         * tree-flow-inline.h (is_call_used): Remove.
34964         * tree-flow.h (struct gimple_df): Remove callused member.
34965         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
34966         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
34967         (ref_maybe_used_by_call_p_1): Simplify.
34968         (call_may_clobber_ref_p_1): Likewise.
34969         * tree-ssa-structalias.c (compute_points_to_sets): Set
34970         the call stmt used and clobbered sets.
34971         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
34972         (find_tail_calls): Verify the tail call.
34973
34974 2010-04-12  Richard Guenther  <rguenther@suse.de>
34975
34976         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
34977         single-iteration always-inline inlining.
34978         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
34979         (cgraph_decide_inlining): Do not handle always-inline specially.
34980         (try_inline): Remove always-inline cycle detection special case.
34981         Do not recurse on always-inlines.
34982         (cgraph_early_inlining): Do not iterate if not optimizing.
34983         (cgraph_gate_early_inlining): remove.
34984         (pass_early_inline): Run unconditionally.
34985         (gate_cgraph_decide_inlining): New function.
34986         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
34987         not inlining or optimizing.
34988         (cgraph_decide_inlining_of_small_functions): Also consider
34989         always-inline functions.
34990         (cgraph_default_inline_p): Return true for nodes which should
34991         disregard inline limits.
34992         (estimate_function_body_sizes): Assume zero size and time for
34993         nodes which are marked as disregarding inline limits.
34994         (cgraph_decide_recursive_inlining): Do not perform recursive
34995         inlining on always-inline nodes.
34996
34997 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
34998
34999         PR bootstrap/43699
35000         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
35001         for exprs satisfying handled_component_p.
35002
35003 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
35004
35005         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
35006         non-constant aggregate elements.
35007
35008         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
35009         is a real initialization.
35010
35011 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
35012
35013         PR c/36774
35014         * c-decl.c (start_function): Move forward check for nested function.
35015
35016 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
35017
35018         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
35019         * config/sh/sh.c: Include reload.h.
35020         (sh_legitimize_reload_address): New.
35021         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
35022         sh_legitimize_reload_address.
35023
35024 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
35025
35026         * config/sh/sh.md (*movqi_pop): New insn pattern.
35027         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
35028
35029 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
35030
35031         * config/i386/i386.md (any_shiftrt): New code iterator.
35032         (shiftrt_insn): New code attribute.
35033         (shiftrt): Ditto.
35034         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
35035         using any_shiftrt code iterator.
35036         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
35037         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
35038         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
35039         pattern from corresponding peephole2 patterns.
35040         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
35041         using any_shiftrt code iterator.
35042         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
35043         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
35044         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
35045         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
35046         *{ashr,lshr}<mode>3_cmp_zext.
35047         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
35048
35049 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
35050
35051         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
35052         scratch register.
35053         (*lshr<mode>3_cconly): Ditto.
35054
35055 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
35056
35057         * config/i386/i386.md (lshr<mode>3): Macroize expander from
35058         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
35059         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
35060         pattern from *lshr{di,ti}3_1 and corresponding splitters using
35061         DWI mode iterator.
35062         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
35063         from corresponding peephole2 patterns.
35064         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
35065         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
35066         and *lshrdi3_1_rex64 using SWI mode iterator.
35067         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
35068         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
35069         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
35070         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
35071         and *lshrdi3_cmp_rex64 using SWI mode iterator.
35072         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
35073         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
35074         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
35075         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
35076         SWI mode iterator.
35077
35078 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
35079
35080         * config/i386/i386.md (ashr<mode>3): Macroize expander from
35081         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
35082         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
35083         pattern from *ashr{di,ti}3_1 and corresponding splitters using
35084         DWI mode iterator.
35085         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
35086         from corresponding peephole2 patterns.
35087         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
35088         (ashrsi3_cvt): Rename from ashrsi3_31.
35089         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
35090         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
35091         and x86_64_shift_adj_3 using SWI48 mode iterator.
35092         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
35093         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
35094         and *ashrdi3_1_rex64 using SWI mode iterator.
35095         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
35096         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
35097         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
35098         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
35099         and *ashrdi3_cmp_rex64 using SWI mode iterator.
35100         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
35101         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
35102         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
35103         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
35104         SWI mode iterator.
35105         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
35106         * config/i386/i386.c (ix86_split_ashr): Update for renamed
35107         x86_shift<mode>_adj_3 expanders.
35108
35109 2010-04-10  Wei Guozhi  <carrot@google.com>
35110
35111         PR target/42601
35112         * config/arm/arm.c (arm_pic_static_addr): New function.
35113         (legitimize_pic_address): Call arm_pic_static_addr when it detects
35114         a static symbol.
35115         (arm_output_addr_const_extra): Output expression for new pattern.
35116         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
35117
35118 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
35119
35120         * ira-costs.c (record_reg_classes): Ignore alternatives that are
35121         not enabled.
35122
35123         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
35124         * web.c: Include "insn-config.h" and "recog.h".
35125         (union_match_dups): New function.
35126         (web_main): Call it.
35127         (union_defs): Don't try to recognize match_dups.
35128
35129         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
35130         if doing so would replace the entire pattern.
35131
35132 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
35133
35134         PR target/43707
35135         PR target/43709
35136         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
35137         and splitter pattern.  Change splitter operand 1 predicate to
35138         nonmemory_operand.
35139
35140 2010-04-09  Martin Jambor  <mjambor@suse.cz>
35141
35142         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
35143         lattices are addresses of CONST_DECLs with the same initial value.
35144         (ipcp_print_all_lattices): Print values of CONST_DECLs.
35145         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
35146
35147 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
35148             Bernd Schmidt  <bernds@codesourcery.com>
35149
35150         * loop-invariant.c (replace_uses): New static function.
35151         (move_invariant_reg): Use it to ensure we can replace the uses.
35152
35153 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
35154
35155         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
35156         function template.
35157         (picochip_override_options): Enable section anchors only above -O1.
35158         (picochip_reorg): Fixed a couple of build warnings.
35159
35160 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35161
35162         * configure.ac (plugin -rdynamic test): Log result.
35163         * configure: Regenerate.
35164         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
35165         (RDYNAMIC_SPEC): Define.
35166         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
35167
35168 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35169
35170         * configure.ac: Determine Sun ld version numbers.
35171         (comdat_group): Restrict GNU ld version checks to gld.
35172         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
35173         (enable_comdat): Support --enable-comdat.
35174         * configure: Regenerate.
35175         * doc/install.texi (Configuration): Document --enable-comdat.
35176
35177 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35178
35179         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
35180         * config/sol2-gld.h: ... here.
35181         * config.gcc (sparc*-*-solaris2*): Reflect this.
35182         (i[34567]86-*-solaris2*): Use it.
35183
35184 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
35185
35186         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
35187         setup_clocks_p.
35188         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
35189
35190 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35191
35192         PR 42965
35193         * diagnostic.c (diagnostic_initialize): Initialize
35194         some_warnings_are_errors.
35195         (diagnostic_finish): New.
35196         (diagnostic_action_after_output): Call it before exiting.
35197         (diagnostic_report_diagnostic): Do not print message here. Set
35198         some_warnings_are_errors.
35199         * diagnostic.h (diagnostic_context): Delete
35200         issue_warnings_are_errors_message. Add some_warnings_are_errors.
35201         (diagnostic_finish): Declare.
35202         * toplev.c (toplev_main): Call it before exit.
35203
35204 2010-04-09  Jason Merrill  <jason@redhat.com>
35205
35206         PR c++/42623
35207         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
35208         for incomplete type.
35209
35210         PR c++/41788
35211         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
35212         based on a warning flag.
35213
35214 2010-04-09  Richard Guenther  <rguenther@suse.de>
35215
35216         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
35217
35218 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
35219
35220         PR bootstrap/43684
35221         * varasm.c (default_assemble_visibility): Wrap vars that are
35222         set, but unused, by targets without GAS.
35223         * config/rs6000/rs6000.c (paired_emit_vector_compare):
35224         Remove set, but unused, vars.
35225         (rs6000_legitimize_tls_address): Likewise.
35226         (altivec_expand_dst_builtin): Likewise.
35227         * config/darwin.c (machopic_classify_symbol): Likewise.
35228         (machopic_indirection_name): Likewise.
35229
35230 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
35231
35232         * config/i386/i386.md (DWI): New mode iterator.
35233         (S): New mode attribute.
35234         (shift_operand): Ditto.
35235         (shift_immediate_operand): Ditto.
35236         (ashl_input_operand): Ditto.
35237         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
35238         using SDWIM mode iterator.
35239         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
35240         pattern from *ashl{di,ti}3_1 and corresponding splitters using
35241         DWI mode iterator.
35242         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
35243         from corresponding peephole2 patterns.
35244         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
35245         and x86_64_shift_adj_1 using SWI48 mode iterator.
35246         (x86_shift<mode>_adj_2): Ditto.
35247         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
35248         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
35249         using SWI48 mode iterator.
35250         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
35251         *ashldi3_cmp_rex64 using SWI mode iterator.
35252         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
35253         *ashldi3_cconly_rex64 using SWI mode iterator.
35254         * config/i386/i386.c (ix86_split_ashl): Update for renamed
35255         x86_shift<mode>_adj_{1,2}.
35256         (ix86_split_ashr): Ditto.
35257         (ix86_split_lshr): Ditto.
35258
35259 2010-04-09  Richard Guenther  <rguenther@suse.de>
35260
35261         * target.h (builtin_conversion): Pass in input and output types.
35262         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
35263         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
35264         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
35265         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
35266
35267         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
35268         Handle AVX modes.
35269         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
35270
35271 2010-04-09  Richard Guenther  <rguenther@suse.de>
35272
35273         PR target/43152
35274         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
35275
35276 2010-04-09  Richard Guenther  <rguenther@suse.de>
35277
35278         * tree-vectorizer.h (struct _stmt_vec_info): Document
35279         that vectype is the type of the LHS.
35280         (supportable_widening_operation, supportable_narrowing_operation):
35281         Get both input and output vector types as arguments.
35282         (vect_is_simple_use_1): Declare.
35283         (get_same_sized_vectype): Likewise.
35284         * tree-vect-loop.c (vect_determine_vectorization_factor):
35285         Set STMT_VINFO_VECTYPE to the vector type of the def.
35286         (vectorizable_reduction): Adjust.
35287         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
35288         Adjust.  Specify the output vector type.
35289         (vect_pattern_recog_1): Adjust.
35290         * tree-vect-stmts.c (get_same_sized_vectype): New function.
35291         (vectorizable_call): Adjust.
35292         (vectorizable_conversion): Likewise.
35293         (vectorizable_operation): Likewise.
35294         (vectorizable_type_demotion): Likewise.
35295         (vectorizable_type_promotion): Likewise.
35296         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
35297         the def.
35298         (vect_is_simple_use_1): New function.
35299         (supportable_widening_operation): Get both input and output
35300         vector types.
35301         (supportable_narrowing_operation): Likewise.
35302         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
35303
35304 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
35305
35306         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
35307         __thiscall and _thiscall as predefined macros.
35308         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
35309         thiscall attribute handling.
35310         (ix86_comp_type_attributes): Likewise.
35311         (ix86_function_regparm): Likewise.
35312         (ix86_return_pops_args): Likewise.
35313         (init_cumulative_args): Likewise.
35314         (find_drap_reg): Likewise.
35315         (ix86_static_chain): Likewise.
35316         (x86_this_parameter): Likewise.
35317         (x86_output_mi_thunk): Likewise.
35318         (ix86_attribute_table): Add description for thiscall attribute.
35319         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
35320         * doc/extend.texi: Add documentation for thiscall.
35321
35322 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35323
35324         PR c++/28584
35325         * c.opt (Wint-to-pointer-cast): Available in C++.
35326         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
35327
35328 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
35329
35330         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
35331         * calls.c (expand_call): Pass the function type to aggregate_value_p.
35332         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
35333         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
35334         function type instead.  Reorder and simplify checks.
35335
35336         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
35337
35338 2010-04-08  Jing Yu  <jingyu@google.com>
35339             Zdenek Dvorak  <ook@ucw.cz>
35340
35341         PR tree-optimization/42720
35342         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
35343         loop unswitch conditions here from ...
35344         (tree_unswitch_single_loop): ... here.
35345
35346 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
35347
35348         * tree-if-conv.c: Fix comments and simplify logic.
35349
35350 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
35351
35352         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
35353         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
35354         (main_tree_if_conversion): Update call to tree_if_conversion.
35355
35356 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35357
35358         PR 42485
35359         * doc/invoke.texi (-b,-V): Delete.
35360         * doc/tm.texi: Do not mention -b.
35361         * gcc.c (display_help): Delete -b and -V.
35362         (process_command): Delete -b and -V.
35363         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
35364
35365 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
35366             Wolfgang Gellerich  <gellerich@de.ibm.com>
35367
35368         Implement target hook for loop unrolling
35369         * target.h (loop_unroll_adjust): Add a new target hook function.
35370         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
35371         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
35372         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
35373         (s390_loop_unroll_adjust): Implement the new target hook for s390.
35374         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
35375         target hook.
35376         (decide_unroll_stupid): Likewise.
35377
35378 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35379
35380         PR target/43643
35381         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
35382
35383 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35384
35385         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
35386         (Specific, *-*-solaris2*): Likewise.
35387         Don't prefer Sun as over GNU as.
35388
35389 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
35390
35391         * config/s390/s390.c (override_options): Adjust the z10 defaults
35392         for max-unroll-times, max-completely-peeled-insns
35393         and max-completely-peel-times.
35394
35395 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35396
35397         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
35398         instructions for z10.
35399         (s390_expand_setmem): Likewise.
35400         (s390_expand_cmpmem): Likewise.
35401
35402 2010-04-08  Richard Guenther  <rguenther@suse.de>
35403
35404         PR tree-optimization/43679
35405         * tree-ssa-pre.c (eliminate): Only propagate copies.
35406
35407 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
35408
35409         PR bootstrap/43681
35410         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
35411         set but not used variable warning.
35412
35413 2010-04-08  Wei Guozhi  <carrot@google.com>
35414
35415         PR target/41653
35416         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
35417         (arm_size_rtx_costs): Call the new function when optimized for size.
35418
35419 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
35420
35421         PR debug/43670
35422         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
35423         op0 is not a MEM, just return NULL instead of assertion
35424         failure.
35425         (discover_nonconstant_array_refs): Don't walk debug stmts.
35426
35427 2010-04-08  Doug Kwan  <dougkwan@google.com>
35428
35429         * configure.ac: Recognize gold and do not use its version number
35430         to test ld features.
35431         * configure: Regenerate.
35432
35433 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
35434
35435         PR middle-end/40815
35436         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
35437         (negate_value): Move code to push elements to broken_up_substracts ...
35438         (eliminate_plus_minus_pair): ... here.  Push operands that have no
35439         negative pair to plus_negates.
35440         (repropagate_negates, init_reassoc, fini_reassoc): Update.
35441
35442 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35443
35444         * doc/install.texi (Configuration): Move description of
35445         --enable-lto, --with-libelf*, --enable-gold from Java section to
35446         general section.
35447
35448         * doc/generic.texi (Working with declarations)
35449         (Function Properties, C and C++ Trees): Fix typos.
35450         * doc/sourcebuild.texi (Top Level): Likewise.
35451
35452 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
35453
35454         PR c/18624
35455         * tree.h (DECL_READ_P): Define.
35456         (struct tree_decl_common): Add decl_read_flag.
35457         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
35458         a set but not used warning.
35459         (merge_decls): Merge DECL_READ_P flag.
35460         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
35461         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
35462         * c-common.c (handle_used_attribute, handle_unused_attribute):
35463         Likewise.
35464         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
35465         New prototypes.
35466         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
35467         New functions.
35468         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
35469         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
35470         c_parser_binary_expression, c_parser_cast_expression,
35471         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
35472         Call default_function_array_read_conversion instead of
35473         default_function_array_conversion where needed.
35474         (c_parser_unary_expression, c_parser_conditional_expression,
35475         c_parser_postfix_expression_after_primary, c_parser_initelt):
35476         Likewise.  Call mark_exp_read where needed.
35477         (c_parser_statement_after_labels, c_parser_asm_operands,
35478         c_parser_typeof_specifier, c_parser_sizeof_expression,
35479         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
35480         where needed.
35481         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
35482         New.
35483         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
35484         (warn_unused_but_set_parameter): Default to warn_unused
35485         && extra_warnings.
35486         * doc/invoke.texi: Document -Wunused-but-set-variable and
35487         -Wunused-but-set-parameter.
35488
35489         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
35490         used count variable.
35491         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
35492         when operandN variables aren't used in the body of the expander
35493         or splitter.
35494         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
35495         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
35496         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
35497         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
35498         FOR_EACH_IMM_USE_ON_STMT): Likewise.
35499         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
35500         * tree.c (PROCESS_ARG): Likewise.
35501
35502 2010-04-07  Simon Baldwin  <simonb@google.com>
35503
35504         * diagnostic.h (diagnostic_override_option_index): New macro to
35505         set a diagnostic's option_index.
35506         * c-tree.h (c_cpp_error): Add warning reason argument.
35507         * opts.c (_warning_as_error_callback): New.
35508         (register_warning_as_error_callback): Store callback for
35509         warnings enabled via enable_warning_as_error.
35510         (enable_warning_as_error): Call callback, minor code tidy.
35511         * opts.h (register_warning_as_error_callback): Declare.
35512         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
35513         response to -Werror=.
35514         (c_common_init_options): Register warning_as_error_callback in opts.c.
35515         * common.opt: Add -Wno-cpp option.
35516         * c-common.c (struct reason_option_codes_t): Map cpp warning
35517         reason codes to gcc option indexes.
35518         * (c_option_controlling_cpp_error): New function, lookup the gcc
35519         option index for a cpp warning reason code.
35520         * (c_cpp_error): Add warning reason argument, call
35521         c_option_controlling_cpp_error for diagnostic_override_option_index.
35522         * doc/invoke.texi: Document -Wno-cpp.
35523
35524 2010-04-07  Richard Guenther  <rguenther@suse.de>
35525
35526         * ipa-reference.c (mark_load): Use get_base_address.
35527         (mark_store): Likewise.
35528
35529         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
35530         inserting GIMPLE_NOPs into the IL.
35531         * tree-ssa-structalias.c (get_constraint_for_component_ref):
35532         Explicitly strip handled components and indirect references.
35533
35534         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
35535         folding address expressions.
35536         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
35537         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
35538         operand_equal_p to compare decls.
35539         (ptr_deref_may_alias_decl_p): Likewise.
35540         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
35541         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
35542         Handle reversed comparison ops.
35543         * tree-sra.c (asm_visit_addr): Use get_base_address.
35544         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
35545         * ipa-reference.c (mark_address): Use get_base_address.
35546
35547 2010-04-07  Richard Guenther  <rguenther@suse.de>
35548
35549         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
35550         Propagate constants everywhere.
35551
35552 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
35553
35554         PR debug/43516
35555         * tree.c (MAX_INT_CACHED_PREC): Define.
35556         (nonstandard_integer_type_cache): New array.
35557         (build_nonstandard_integer_type): Cache results for precision
35558         <= MAX_INT_CACHED_PREC.
35559
35560 2010-04-07  Richard Guenther  <rguenther@suse.de>
35561
35562         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
35563         -fargument-noalias-global, -fargument-noalias-anything): Remove.
35564         * common.opt: Likewise.
35565         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
35566         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
35567         (nonoverlapping_memrefs_p): Likewise.
35568         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
35569         * opts.c (common_handle_option): Handle OPT_fargument_alias,
35570         OPT_fargument_noalias, OPT_fargument_noalias_anything and
35571         OPT_fargument_noalias_global for backward compatibility.
35572
35573 2010-04-07  Richard Guenther  <rguenther@suse.de>
35574
35575         PR tree-optimization/43270
35576         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
35577         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
35578         * tree-ssa-pre.c (phi_translate_1): Adjust.
35579         (fully_constant_expression): Split out vn_reference handling to ...
35580         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
35581         Fold reads from constant strings.
35582         (vn_reference_lookup): Handle fully constant references.
35583         (vn_reference_lookup_pieces): Likewise.
35584         * Makefile.in (expmed.o-warn): Add -Wno-error.
35585
35586 2010-04-07  Martin Jambor  <mjambor@suse.cz>
35587
35588         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
35589
35590 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
35591
35592         PR driver/41594
35593         * gcc.c: Add -static-libstdc++ to list of recognized options.
35594
35595 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35596
35597         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
35598
35599 2010-04-07  Richard Guenther  <rguenther@suse.de>
35600
35601         PR middle-end/42617
35602         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
35603         bases build simple mem attributes to retain points-to information.
35604
35605 2010-04-07  Richard Guenther  <rguenther@suse.de>
35606
35607         PR middle-end/42617
35608         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
35609         preserve points-to related information.
35610
35611 2010-04-07  Richard Guenther  <rguenther@suse.de>
35612
35613         PR middle-end/42617
35614         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
35615         discard plain indirect references.
35616         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
35617         * tree.c (tree_nop_conversion): Likewise.
35618
35619 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
35620
35621         PR debug/43628
35622         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
35623
35624 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
35625
35626         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
35627         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
35628
35629 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
35630
35631         * tree-if-conv.c: Fix indentation and comments.
35632
35633 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
35634
35635         * tree-if-conv.c: Sort static functions in topological order.
35636
35637 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
35638
35639         * tree-if-conv.c: Fix indentation and comments.
35640
35641 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35642
35643         PR middle-end/43519
35644         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
35645         lang_hooks.types.type_for_size instead of
35646         build_nonstandard_integer_type.
35647         When converting an unsigned type to signed, double its precision.
35648         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
35649         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
35650         (graphite_create_new_loop_guard): When ub + 1 wraps around,
35651         use lb <= ub.
35652
35653 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35654
35655         PR middle-end/43519
35656         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
35657         POINTER_PLUS_EXPR for pointer types.
35658
35659 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35660
35661         PR middle-end/43519
35662         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
35663         * graphite-clast-to-gimple.c: Include langhooks.h.
35664         (max_signed_precision_type): New.
35665         (max_precision_type): Takes two types as arguments.
35666         (precision_for_value): New.
35667         (precision_for_interval): New.
35668         (gcc_type_for_interval): New.
35669         (gcc_type_for_value): New.
35670         (gcc_type_for_clast_term): New.
35671         (gcc_type_for_clast_red): New.
35672         (gcc_type_for_clast_bin): New.
35673         (gcc_type_for_clast_expr): Split up into several functions.
35674         (gcc_type_for_clast_eq): Rewritten.
35675         (compute_bounds_for_level): New.
35676         (compute_type_for_level_1): New.
35677         (compute_type_for_level): New.
35678         (gcc_type_for_cloog_iv): Removed.
35679         (gcc_type_for_iv_of_clast_loop): Rewritten.
35680         (graphite_create_new_loop): Compute the lower and upper bound types
35681         with gcc_type_for_clast_expr.
35682         (graphite_create_new_loop_guard): Same.
35683         (find_cloog_iv_in_expr): Removed.
35684         (compute_cloog_iv_types_1): Removed.
35685         (compute_cloog_iv_types): Removed.
35686         (gloog): Do not call compute_cloog_iv_types.
35687         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
35688         GBB_CLOOG_IV_TYPES.
35689         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
35690         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
35691         (GBB_CLOOG_IV_TYPES): Removed.
35692
35693 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35694
35695         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
35696         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
35697         (detect_commutative_reduction): Same.
35698
35699 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35700
35701         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
35702         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
35703         argument.
35704         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
35705         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
35706         (rewrite_commutative_reductions_out_of_ssa): Same.
35707         * passes.c (execute_function_todo): Call verify_ssa for every pass
35708         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
35709         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
35710         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
35711         with an extra argument.
35712         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
35713         verify_ssa only when the extra argument is true.
35714         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
35715         with an extra argument.
35716         (tree_transform_and_unroll_loop): Same.
35717
35718 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35719
35720         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
35721         for all the passes of the LNO having LOOP_CLOSED_SSA.
35722         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
35723         * tree-loop-distribution.c (pass_loop_distribution): Same.
35724         * tree-pass.h (TODO_verify_loops): Removed.
35725         * tree-ssa-loop.c (pass_tree_loop_init): Same.
35726         (pass_lim): Same.
35727         (pass_tree_unswitch): Same.
35728         (pass_predcom): Same.
35729         (pass_vectorize): Same.
35730         (pass_linear_transform): Same.
35731         (pass_graphite_transforms): Same.
35732         (pass_iv_canon): Same.
35733         (pass_complete_unroll): Same.
35734         (pass_complete_unrolli): Same.
35735         (pass_parallelize_loops): Same.
35736         (pass_loop_prefetch): Same.
35737         (pass_iv_optimize): Same.
35738
35739 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
35740
35741         PR middle-end/32824
35742         * passes.c (init_optimization_passes): Move pass_lim before
35743         pass_copy_prop and pass_dce_loop.
35744
35745 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
35746
35747         PR target/43667
35748         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
35749         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
35750         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
35751         MULTI_* defines for 4 argument vpermil2p* builtins.
35752
35753 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
35754
35755         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
35756         * config/i386/i386.c (x86_maybe_negate_const_int): New.
35757         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
35758         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
35759         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
35760         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
35761         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
35762         Use x86_maybe_negate_const_int to output insn mnemonic.
35763         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
35764         check from instruction predicate.  Update comments.
35765         * config/i386/sync.md (sync_add<mode>): Use
35766         x86_maybe_negate_const_int to output insn mnemonic.
35767
35768 2010-04-06  Jan Hubicka  <jh@suse.cz>
35769
35770         PR tree-optimization/42906
35771         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
35772         IGNORE_SELF argument.  Set visited_control_parents for fully
35773         processed BBs.
35774         (find_obviously_necessary_stmts): Update call of
35775         mark_control_dependent_edges_necessary.
35776         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
35777
35778 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
35779
35780         * config/i386/i386.md: Remove comment about 'e' and 'E'
35781         operand modifier.
35782
35783 2010-04-06  Richard Guenther  <rguenther@suse.de>
35784
35785         PR tree-optimization/43627
35786         * tree-vrp.c (extract_range_from_unary_expr): Widenings
35787         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
35788         not varying.
35789
35790 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
35791
35792         * BASE-VER: Change to 4.6.0.
35793
35794         PR target/43638
35795         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
35796         handling.
35797
35798 2010-04-06  Richard Guenther  <rguenther@suse.de>
35799
35800         PR middle-end/43661
35801         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
35802
35803 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35804
35805         * doc/invoke.texi (Optimize Options): Document that LTO
35806         won't remove object access purely due to incompatible
35807         declarations.
35808
35809 2010-04-04  Matthias Klose  <doko@ubuntu.com>
35810
35811         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
35812         Initialize variable.
35813
35814 2010-04-03  Richard Guenther  <rguenther@suse.de>
35815
35816         PR middle-end/42509
35817         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
35818         require a non-NULL MEM_OFFSET.
35819
35820 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
35821
35822         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
35823         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
35824         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
35825         config/alpha/predicates.md, config/arm/arm.md,
35826         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
35827         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
35828         config/darwin9.h, config/darwin.c, config/darwin.h,
35829         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
35830         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
35831         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
35832         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
35833         config/mips/mips.md, config/mn10300/mn10300.c,
35834         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
35835         config/rs6000/aix.h, config/rs6000/dfp.md,
35836         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
35837         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
35838         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
35839         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
35840         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
35841         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
35842         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
35843         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
35844         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
35845         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
35846         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
35847         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
35848         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
35849         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
35850         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
35851         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
35852         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
35853         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
35854         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
35855         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
35856         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
35857         opt-functions.awk, opth-gen.awk, params.def, passes.c,
35858         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
35859         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
35860         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
35861         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
35862         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
35863         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
35864         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
35865         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
35866         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
35867         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
35868         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
35869         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
35870         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
35871         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
35872
35873 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35874
35875         PR other/43620
35876         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
35877         * aclocal.m4: Regenerate.
35878
35879 2010-04-02  Richard Guenther  <rguenther@suse.de>
35880
35881         PR tree-optimization/43629
35882         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
35883         if we have seen a constant value.
35884
35885 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
35886
35887         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
35888
35889 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
35890
35891         PR target/43469
35892         * arm.c (legitimize_tls_address): Adjust call to
35893         gen_tls_load_dot_plus_four.
35894         (arm_note_pic_base): New function.
35895         (arm_cannot_copy_insn_p): Use it.
35896         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
35897         constraint.
35898
35899 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35900
35901         PR bootstrap/43531
35902
35903         Revert:
35904         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35905
35906         * Makefile.in ($(out_object_file)): Depend on
35907         gt-$(basename $(notdir $(out_file))).h.
35908
35909 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
35910
35911         * config.gcc (lm32-*-rtems*): Add t-lm32.
35912
35913 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
35914
35915         * config.gcc: Add lm32-*-rtems*.
35916         * config/lm32/rtems.h: New file.
35917
35918 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
35919
35920         PR target/42609
35921         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
35922
35923 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
35924
35925         * dwarf2out.c (output_compilation_unit_header): For
35926         -gdwarf-4 use version 4 instead of version 3.
35927         (output_line_info): For version 4 and above emit additional
35928         maximum ops per insn header field.
35929         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
35930
35931         * dwarf2out.c (is_c_family, is_java): Remove.
35932         (lower_bound_default): New function.
35933         (add_bound_info, gen_descr_array_type_die): Use it.
35934
35935 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
35936
35937         PR debug/43325
35938         * dwarf2out.c (gen_variable_die): Allow debug info for variable
35939         re-declaration when it happens in a function.
35940
35941 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
35942
35943         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
35944         (cgraph_remove_function_insertion_hook): Same.
35945         (cgraph_call_function_insertion_hooks): Same.
35946
35947 2010-04-01  Richard Guenther  <rguenther@suse.de>
35948
35949         PR middle-end/43614
35950         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
35951         and TREE_THIS_VOLATILE.
35952         (copy_ref_info): Likewise.
35953         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
35954         * tree.c (build6_stat): Ignore side-effects of all but arg5
35955         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
35956         TARGET_MEM_REF.
35957
35958 2010-04-01  Richard Guenther  <rguenther@suse.de>
35959
35960         PR tree-optimization/43607
35961         * ipa-type-escape.c (check_call): Do not access non-existing
35962         arguments.
35963
35964 2010-04-01  Richard Guenther  <rguenther@suse.de>
35965
35966         PR middle-end/43602
35967         Revert
35968         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
35969                     Jack Howarth  <howarth@bromo.med.uc.edu>
35970
35971         * tree-profile.c (tree_init_ic_make_global_vars): Make static
35972         variables TLS.
35973
35974 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35975
35976         * doc/install.texi (Prerequisites): Document libelf usability on
35977         IRIX 5/6 and Solaris 2.
35978         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
35979         Update GNU as, GNU ld requirements.
35980         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
35981         Document Sun Studio compiler download.
35982         Update and simplify as, ld recommendations.
35983         (Specific, *-*-solaris2.7): Note obsoletion, removal.
35984
35985 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35986
35987         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
35988         with_tune_32 to pentium4.
35989
35990 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
35991
35992         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
35993
35994 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35995
35996         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
35997         obsoletion, removal.
35998         Update IDO URL.
35999         Document GNU as requirement.
36000         Update configure requirements.
36001         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
36002         Recomment IRIX 6.5.18+.
36003         Document IDF/IDL requirement.
36004         Document GNU as requirement.
36005         Document GNU ld bootstrap failure.
36006         Remove freeware.sgi.com reference.
36007
36008 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36009
36010         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
36011         UNIX V4.0, V5.0 obsoletion, removal.
36012         Remove --with-gc=simple reference.
36013         Update VM requirements during bootstrap.
36014         Remove -oldas bootstrap description.
36015         Update binutils reference.
36016         Remove comparison failure note.
36017
36018 2010-03-31  Richard Guenther  <rguenther@suse.de>
36019             Zdenek Dvorak  <ook@ucw.cz>
36020             Sebastian Pop  <sebastian.pop@amd.com>
36021
36022         PR middle-end/43464
36023         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
36024         with multiple arguments.
36025         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
36026
36027 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
36028
36029         * graphite-dependences.c (print_pddr): Call print_pdr with an
36030         extra argument.
36031         * graphite-poly.c (debug_pdr): Add an extra argument for the
36032         verbosity level.
36033         (print_pdr): Same.
36034         (print_pbb_domain): Same.
36035         (print_pbb): Same.
36036         (print_scop_context): Same.
36037         (print_scop): Same.
36038         (print_cloog): Same.
36039         (debug_pbb_domain): Same.
36040         (debug_pbb): Same.
36041         (print_pdrs): Same.
36042         (debug_pdrs): Same.
36043         (debug_scop_context): Same.
36044         (debug_scop): Same.
36045         (debug_cloog): Same.
36046         (print_scop_params): Same.
36047         (debug_scop_params): Same.
36048         (print_iteration_domain): Same.
36049         (print_iteration_domains): Same.
36050         (debug_iteration_domain): Same.
36051         (debug_iteration_domains): Same.
36052         (print_scattering_function): Same.
36053         (print_scattering_functions): Same.
36054         (debug_scattering_function): Same.
36055         (debug_scattering_functions): Same.
36056         * graphite-poly.h (debug_pdr): Update declaration.
36057         (print_pdr): Same.
36058         (print_pbb_domain): Same.
36059         (print_pbb): Same.
36060         (print_scop_context): Same.
36061         (print_scop): Same.
36062         (print_cloog): Same.
36063         (debug_pbb_domain): Same.
36064         (debug_pbb): Same.
36065         (print_pdrs): Same.
36066         (debug_pdrs): Same.
36067         (debug_scop_context): Same.
36068         (debug_scop): Same.
36069         (debug_cloog): Same.
36070         (print_scop_params): Same.
36071         (debug_scop_params): Same.
36072         (print_iteration_domain): Same.
36073         (print_iteration_domains): Same.
36074         (debug_iteration_domain): Same.
36075         (debug_iteration_domains): Same.
36076         (print_scattering_function): Same.
36077         (print_scattering_functions): Same.
36078         (debug_scattering_function): Same.
36079         (debug_scattering_functions): Same.
36080
36081 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
36082
36083         * graphite-poly.c (print_scattering_function_1): New.
36084         (print_scattering_function): Call it.
36085         (print_scop_params): Remove spaces at the end of lines.
36086         (print_cloog): New.
36087         (debug_cloog): New.
36088         * graphite-poly.h (print_cloog): Declared.
36089         (debug_cloog): Declared.
36090
36091 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
36092
36093         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
36094         in loop->header.
36095         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
36096         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
36097         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
36098         to switch between adding the IV bump in loop->latch or in loop->header.
36099
36100 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
36101
36102         * graphite-poly.c (print_scattering_function): Pretty print following
36103         the scoplib format.
36104         (print_pdr): Same.
36105         (print_pbb_domain): Same.
36106         (dump_gbb_cases): Same.
36107         (dump_gbb_conditions): Same.
36108         (print_pdrs): Same.
36109         (print_pbb): Same.
36110         (print_scop_params): Same.
36111         (print_scop_context): Same.
36112         (print_scop): Same.
36113         (print_pbb_body): New.
36114         (lst_indent_to): New.
36115         (print_lst): Start new lines with a #.
36116         * graphite-poly.h (pbb_bb): New.
36117         (pbb_index): Use pbb_bb.
36118         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
36119         disjuncts.
36120         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
36121
36122 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
36123
36124         * dwarf2out.c (size_of_die): For -gdwarf-4 use
36125         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
36126         and 0 instead of 1 for dw_val_class_flag.
36127         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
36128         dw_val_class_range_list, dw_val_class_loc_list,
36129         dw_val_class_lineptr and dw_val_class_macptr, use
36130         DW_FORM_flag_present for dw_val_class_flag and
36131         DW_FORM_exprloc for dw_val_class_loc.
36132         (output_die): For -gdwarf-4 print dw_val_class_loc
36133         size as uleb128 instead of 1 or 2 bytes and don't print
36134         anything for dw_val_class_flag.
36135
36136         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
36137         instead of cselib_lookup following by tweaking locs->setting_insn.
36138
36139         PR bootstrap/43596
36140         * cselib.c (cselib_process_insn): Clear cselib_current_insn
36141         even before returning from label, setjmp call or volatile asm
36142         handling.
36143
36144 2010-03-31  Richard Guenther  <rguenther@suse.de>
36145
36146         PR middle-end/43600
36147         * cgraphunit.c (cgraph_output_in_order): Do not allocate
36148         temporary data on stack.
36149
36150 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36151
36152         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
36153         (PUSHSECTION_ASM_OP): Remove.
36154         (POPSECTION_ASM_OP): Remove.
36155         (PUSHSECTION_FORMAT): Remove.
36156         * config/sol2.h (PUSHSECTION_FORMAT): Define.
36157         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
36158         * config/sol2.c (solaris_output_init_fini): Use it.
36159
36160 2010-03-31  Jie Zhang  <jie@codesourcery.com>
36161
36162         PR 43574
36163         * opt-functions.awk (var_type_struct): Use signed char type
36164         for simple variables.
36165
36166 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36167
36168         * config/sol2.c: Include output.h.
36169         (solaris_assemble_visibility): New function.
36170         * config/t-sol2 (sol2.o): Add output.h dependency.
36171         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
36172         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
36173         Redefine.
36174
36175 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
36176
36177         PR target/43580
36178         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
36179         V2SImode or XFmode on PRE_DEC.
36180
36181         PR debug/43557
36182         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
36183         BLKmode.
36184
36185 2010-03-31  Jie Zhang  <jie@codesourcery.com>
36186
36187         PR 43562
36188         * reload.h (caller_save_initialized_p): Declare.
36189         * toplev.c (backend_init_target): Don't call
36190         init_caller_save but set caller_save_initialized_p to false.
36191         * caller-save.c (caller_save_initialized_p): Define.
36192         (init_caller_save): Check caller_save_initialized_p.
36193         * ira.c (ira): Call init_caller_save if flag_caller_saves.
36194
36195 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36196
36197         PR target/39048
36198         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
36199         and soft-fp/t-softfp to tmake_file.
36200         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
36201         (LIBGCC2_TF_CEXT): Define.
36202         (TF_SIZE): Define.
36203
36204 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
36205
36206         PR debug/42977
36207         * cselib.c (n_useless_values): Document handling of debug locs.
36208         (n_useless_debug_values, n_debug_values): New variables.
36209         (new_elt_loc_list): Don't add to debug values, keep count.
36210         (promote_debug_loc): New.
36211         (cselib_reset_table): Zero new variables.
36212         (entry_and_rtx_equal_p): Promote debug locs.
36213         (discard_useless_locs): Increment n_useless_debug_values for
36214         debug values.
36215         (remove_useless_values): Adjust n_useless_values and n_debug_values
36216         with n_useless_debug_values.
36217         (add_mem_for_addr): Promote debug locs.
36218         (cselib_lookup_mem): Likewise.
36219         (cselib_lookup_addr): Renamed to...
36220         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
36221         (cselib_log_lookup): ... this.  Turn into...
36222         (cselib_lookup_addr): ... new wrapper.
36223         (cselib_lookup_from_insn): New.
36224         (cselib_invalidate_regno): Increment n_useless_debug_values for
36225         debug values.
36226         (cselib_invalidate_mem): Likewise.
36227         (cselib_process_insn): Take n_deleted and n_debug_values into
36228         account to guard remove_useless_value call.
36229         (cselib_finish): Zero n_useless_debug_values.
36230         * cselib.h (cselib_lookup_from_insn): Declare.
36231         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
36232         (sched_analyze_2): Likewise.
36233
36234 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
36235
36236         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
36237         functions.
36238         (adjust_mems): Replace narrowing SUBREG of expression containing
36239         just PLUS, MINUS, MULT and ASHIFT of registers and constants
36240         with operations in the narrower mode.
36241
36242         PR debug/43593
36243         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
36244         regs_invalidated_by_call instead all call_used_reg_set registers.
36245
36246 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
36247
36248         PR middle-end/43430
36249         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
36250         pointer comparisons with types_compatible_p.
36251         * tree-vect-stmts.c (vectorizable_call): Same.
36252         (vectorizable_condition): Same.
36253
36254 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
36255
36256         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
36257         stack check if the mask would be zero.
36258
36259 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
36260             Jack Howarth  <howarth@bromo.med.uc.edu>
36261
36262         * tree-profile.c (tree_init_ic_make_global_vars): Make static
36263         variables TLS.
36264
36265 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
36266
36267         PR other/25232
36268         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
36269         and __unordtf2.
36270         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
36271         Include ___unordxf2 and ___unordtf2.
36272         * config/i386/libgcc-glibc.ver: Do not define inheritance from
36273         GCC_4.4.0 here.
36274
36275 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
36276
36277         * config/lm32/t-lm32: New file.
36278         * config.gcc: Use the above file when targetting lm32.
36279
36280 2010-03-28  Duncan Sands  <baldrick@free.fr>
36281
36282         * Makefile.in (PLUGIN_HEADERS): Add except.h.
36283
36284 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
36285
36286         PR middle-end/43431
36287         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
36288         Improve vectorization cost model diagnostic.
36289
36290 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
36291
36292         PR middle-end/43436
36293         * tree-vect-data-refs.c (vect_analyze_data_refs): When
36294         compute_data_dependences_for_loop returns false, early exit
36295         and output an extra diagnostic for the failed data reference
36296         analysis.
36297
36298 2010-03-29  Richard Guenther  <rguenther@suse.de>
36299
36300         PR tree-optimization/43560
36301         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
36302         (can_sm_ref_p): Treat stores to readonly locations as trapping.
36303
36304 2010-03-29  Jie Zhang  <jie@codesourcery.com>
36305
36306         PR 43564
36307         * toplev.c (process_options): Set optimization_default_node
36308         and optimization_current_node.
36309         * opts.c (decode_options): Don't set optimization_default_node
36310         and optimization_current_node.
36311
36312 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
36313
36314         * config/rtems.h: Abandon -qrtems_debug.
36315
36316 2010-03-28  Jan Hubicka  <jh@suse.cz>
36317
36318         PR tree-optimization/43505
36319         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
36320         map should not be copied.
36321
36322 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36323
36324         PR middle-end/41674
36325         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
36326         cdtors, set DECL_PRESERVE_P.
36327         * ipa.c (cgraph_externally_visible_p): Return true if declaration
36328         should be preseved.
36329
36330 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
36331
36332         PR tree-optimization/43528
36333         * stor-layout.c (place_field): Check that constant fits into
36334         unsigned HWI when skipping calculation of MS bitfield layout.
36335
36336 2010-03-27  Jan Hubicka  <jh@suse.cz>
36337
36338         PR middle-end/43391
36339         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
36340         notice_global_symbol work.
36341
36342 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
36343
36344         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
36345         instead of dwarf2out_decl.
36346         (struct var_loc_node): Remove section_label field.
36347         (dwarf2out_function_decl): New function.
36348         (dwarf2out_var_location): Don't set section_label field.
36349         (dwarf2out_begin_function): Don't empty decl_loc_table here.
36350
36351 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
36352
36353         PR tree-optimization/43544
36354         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
36355         First argument for builtin vectorized function hook is now a
36356         tree to be able to distinguish between machine specific and
36357         standard builtins.
36358         * targhooks.c (default_builtin_vectorized_function): Ditto.
36359         * targhooks.h (default_builtin_vectorized_function): Ditto.
36360         * target.h (struct gcc_target): Ditto.
36361         * tree-vect-stmts.c (vectorizable_function): Ditto.
36362         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
36363         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
36364         Ditto.
36365
36366 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
36367
36368         PR c/43381
36369         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
36370         nested binding iff it is a FUNCTION_DECL.
36371         (store_parm_decls_newstyle): Pass nested=true to bind for
36372         FUNCTION_DECLs amongst parameters.
36373
36374 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
36375
36376         * var-tracking.c (vt_expand_loc_callback): Don't run
36377         cselib_expand_value_rtx_cb in dummy mode if
36378         cselib_dummy_expand_value_rtx_cb returned false.
36379
36380         * var-tracking.c (emit_note_insn_var_location): For one part
36381         notes with offset 0, don't add EXPR_LIST around the location.
36382         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
36383         add_location_or_const_value_attribute): Adjust for that change.
36384
36385         PR debug/43540
36386         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
36387         into first operand and location into second.
36388         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
36389         dw_cfi_oprnd_loc for DW_CFA_expression.
36390         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
36391         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
36392         assume first argument is regnum and second argument is location.
36393
36394 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
36395
36396         PR target/42113
36397         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
36398         of scratch register to DImode.  Split to DImode comparison operator.
36399         Use SImode subreg of scratch register in the multiplication.
36400         (*cmp_sadd_sidi): Ditto.
36401         (*cmp_ssub_si): Ditto.
36402         (*cmp_ssub_sidi): Ditto.
36403
36404 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
36405
36406         PR target/43524
36407         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
36408         Remove invalid assert and wrong comment.
36409
36410 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
36411
36412         PR debug/43516
36413         * flags.h (final_insns_dump_p): New extern.
36414         * final.c (final_insns_dump_p): New variable.
36415         (rest_of_clean_state): Set it before -fdump-final-insns=
36416         dumping, clear afterwards.
36417         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
36418         MEM_ALIAS_SET on MEMs.
36419
36420 2010-03-26  David S. Miller  <davem@davemloft.net>
36421
36422         * configure.ac: Fix sparc GOTDATA_OP bug check.
36423         * configure: Rebuild.
36424
36425 2010-03-26  Alan Modra  <amodra@gmail.com>
36426
36427         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
36428
36429 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36430
36431         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
36432         TLS_SECTION_ASM_FLAG.
36433
36434 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
36435
36436         PR bootstrap/43511
36437         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
36438         Clear first_function_block_is_cold.
36439
36440         PR c/43385
36441         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
36442         argument if the argument is truth_value_p.
36443
36444 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
36445
36446         * config/rs6000/constraints.md: Update copyright year for my changes.
36447
36448         PR target/43484
36449         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
36450         used in reg+reg addressing, swap registers.
36451
36452 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
36453
36454         PR debug/43293
36455         * target.h (struct gcc_target): Add code_end hook.
36456         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
36457         if not yet defined.
36458         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
36459         * toplev.c (compile_file): Call targetm.asm_out.code_end
36460         hook before unwind info/debug info output.
36461         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
36462         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
36463         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
36464         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
36465         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
36466         * config/i386/i386.c (ix86_file_end): Renamed to...
36467         (ix86_code_end): ... this.  Make static.  Don't call
36468         file_end_indicate_exec_stack.  Emit unwind info using
36469         final_start_function/final_end_function.
36470         (darwin_x86_file_end): Remove.
36471         (TARGET_ASM_CODE_END): Define.
36472         * config/i386/i386.h (TARGET_ASM_FILE_END,
36473         NEED_INDICATE_EXEC_STACK): Don't define.
36474         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
36475         (TARGET_ASM_FILE_END): Define to darwin_file_end.
36476         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
36477         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
36478
36479         PR target/43498
36480         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
36481         at the beginning and final_end_function at the end.
36482         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
36483
36484 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36485
36486         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
36487         and Sun as TLS syntax.
36488         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
36489         * configure: Regenerate.
36490         * config.in: Regenerate.
36491         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
36492         (default_elf_asm_named_section): Use it.
36493         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
36494         (i386_output_dwarf_dtprel): Likewise.
36495         (output_addr_const_extra): Likewise.
36496         (output_pic_addr_const): Lowercase @GOTTPOFF.
36497         (output_addr_const_extra): Likewise.
36498         (output_pic_addr_const): Lowercase @GOTNTPOFF.
36499         (output_addr_const_extra): Likewise.
36500         (output_pic_addr_const): Lowercase @INDNTPOFF.
36501         (output_addr_const_extra): Likewise.
36502         (output_pic_addr_const): Lowercase @NTPOFF.
36503         (output_addr_const_extra): Likewise.
36504         (output_pic_addr_const): Lowercase @TPOFF.
36505         (output_addr_const_extra): Likewise.
36506         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
36507         (*tls_global_dynamic_64): Likewise.
36508         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
36509         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
36510
36511         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
36512         (ASM_OUTPUT_TLS_COMMON): Use it.
36513         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
36514
36515         PR target/38118
36516         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
36517         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
36518         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
36519         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
36520         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
36521         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
36522
36523 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36524
36525         * config/i386/i386.c (override_options): Don't accept
36526         -mtls-dialect=sun any longer.
36527         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
36528         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
36529         (*tls_local_dynamic_base_32_sun): Likewise.
36530         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
36531
36532 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
36533
36534         PR debug/43508
36535         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
36536         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
36537
36538         PR debug/43479
36539         * ira.c (adjust_cleared_regs): New function.
36540         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
36541
36542         PR debug/19192
36543         PR debug/43479
36544         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
36545         from gimple_block.
36546         * expr.c (expand_expr_real): Restore previous
36547         curr_insn_source_location and curr_insn_block after
36548         expand_expr_real_1 call.
36549         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
36550         instead of expand_expr_real_1.
36551
36552 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
36553
36554         PR rtl-optimization/43413
36555         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
36556         hard regs too.
36557
36558 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
36559
36560         PR target/43348
36561         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
36562         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
36563
36564 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
36565
36566         * config/i386/i386.c (ix86_target_string): Add -mfma.
36567         Fix a typo in comment.
36568
36569 2010-03-22  Mike Stump  <mikestump@comcast.net>
36570
36571         PR target/23071
36572         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
36573         Don't overly align based upon packed packed fields.
36574
36575 2010-03-22  Jason Merrill  <jason@redhat.com>
36576
36577         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
36578         Use () rather than [], and move before the element type.
36579
36580 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36581
36582         * doc/configfiles.texi (Configuration Files): Removed
36583         fixinc/Makefile*, intl/Makefile.*.
36584         * doc/makefile.texi: Fixed markup. Abstract from version
36585         control system used.
36586         (Makefile): Removed obsolete java/parse.y example.
36587         * doc/sourcebuild.texi: Likewise.
36588         (Top Level): Added config, gnattools, libdecnumber, libgcc,
36589         libgomp, libssp.  Removed fastjar.
36590         (Miscellaneous Docs): Clarify location.
36591         Added COPYING3, COPYING3.LIB.
36592         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
36593
36594 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36595
36596         PR target/38085
36597         * config/i386/i386.c (x86_function_profiler)
36598         [!NO_PROFILE_COUNTERS]: Fix typo.
36599         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
36600         instead of callq.
36601
36602 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
36603             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36604
36605         * doc/sourcebuild.texi (Test Directives): Split into six
36606         subsections, with most of the current text in new subsections
36607         Directives, Selectors, and Final Actions.
36608         (Directives): Split list of test directives into multiple
36609         subsubsections.
36610         (Selectors): Describe use and syntax of selectors.
36611         (Effective-Target Keywords): Describe all existing keywords.
36612         (Add Options): Describe features for dg-add-options.
36613         (Require Support): Describe variants of dg-require-support.
36614         (Final Actions): Describe commands to use in dg-final.
36615
36616 2010-03-22  Michael Matz  <matz@suse.de>
36617
36618         PR middle-end/43475
36619         * recog.c (validate_replace_rtx_group): Replace also in
36620         REG_EQUAL and REG_EQUIV notes.
36621
36622 2010-03-22  Richard Guenther  <rguenther@suse.de>
36623
36624         PR tree-optimization/43390
36625         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
36626         sure vector extracts are type correct.
36627
36628 2010-03-22  Richard Guenther  <rguenther@suse.de>
36629
36630         PR middle-end/40106
36631         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
36632         x * sqrt (x) even when optimizing for size if the target
36633         has native support for sqrt.
36634
36635 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
36636
36637         * varasm.c (make_decl_rtl_for_debug): Also clear
36638         flag_mudflap for the duration of make_decl_rtl call.
36639
36640         PR debug/43443
36641         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
36642         locs from preserved VALUEs.
36643
36644 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36645
36646         PR middle-end/42718
36647         * pa.md (movmemsi): Set align to one if zero.
36648         (movmemdi): Likewise.
36649
36650 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
36651
36652         PR target/42321
36653         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
36654         with their corresponding prologue pushes.
36655
36656 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
36657
36658         PR target/43156
36659         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
36660         at the begining or end.
36661         (spu_expand_epilogue): Likewise.
36662
36663 2010-03-20  Richard Guenther  <rguenther@suse.de>
36664
36665         PR rtl-optimization/43438
36666         * combine.c (make_extraction): Properly zero-/sign-extend an
36667         extraction of the low part of a CONST_INT.  Also handle
36668         CONST_DOUBLE.
36669
36670 2010-03-19  Mike Stump  <mikestump@comcast.net>
36671
36672         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
36673         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
36674         (override_options): Use SUBTARGET32_DEFAULT_CPU.
36675
36676 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
36677
36678         PR c/43211
36679         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
36680         an error.
36681
36682 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
36683
36684         PR rtl-optimization/42258
36685         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
36686         use that may match DEF.
36687
36688         PR target/40697
36689         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
36690         the cost of loading the constant rather than assuming
36691         COSTS_N_INSNS (1).
36692         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
36693         outer code is AND, do the same tests as the andsi3 expander and
36694         return COSTS_N_INSNS (1) if and is cheap.
36695
36696         * optabs.c (avoid_expensive_constant): Fix formatting.
36697
36698 2010-03-19  Michael Matz  <matz@suse.de>
36699
36700         PR c++/43116
36701         * attribs.c (decl_attributes): When rebuilding a function pointer
36702         type use the same qualifiers as the original pointer type.
36703
36704 2010-03-19  Martin Jambor  <mjambor@suse.cz>
36705
36706         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
36707         and is_gimple_ip_invariant_address.
36708
36709 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
36710
36711         Revert
36712         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
36713
36714         * config/arm/arm.c (arm_override_options): Turn off
36715         flag_dwarf2_cfi_asm for AAPCS variants.
36716
36717 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
36718
36719         PR target/43399
36720         * config/arm/arm.c (emit_multi_reg_push): Update comments.
36721         Use PRE_MODIFY instead of PRE_DEC.
36722         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
36723         (vfp_emit_fstmd): Likewise.
36724
36725 2010-03-19  Michael Matz  <matz@suse.de>
36726
36727         PR target/43305
36728         * builtins.c (expand_builtin_interclass_mathfn,
36729         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
36730         if that fails.
36731
36732 2010-03-19  Richard Guenther  <rguenther@suse.de>
36733
36734         PR tree-optimization/43415
36735         * tree-ssa-pre.c (phi_translate): Split out worker to ...
36736         (phi_translate_1): ... this.
36737         (phi_translate): Move all caching here.  Cache all NARY
36738         and REFERENCE translations.
36739
36740 2010-03-19  David S. Miller  <davem@davemloft.net>
36741
36742         With help from Eric Botcazou.
36743         * config/sparc/sparc.c: Include dwarf2out.h.
36744         (emit_pic_helper): Delete.
36745         (pic_helper_symbol_name): Delete.
36746         (pic_helper_emitted_p): Delete.
36747         (pic_helper_needed): New.
36748         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
36749         (get_pc_thunk_name): New.
36750         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
36751         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
36752         Set pic_helper_needed to true.  Don't call emit_pic_helper.
36753         (sparc_expand_prologue): Update load_pic_register call.
36754         (sparc_output_mi_thunk): Likewise.
36755         (sparc_file_end): Emit a hidden comdat symbol for the PIC
36756         thunk if possible.  Output CFI information as needed.
36757
36758 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
36759             Jack Howarth  <howarth@bromo.med.uc.edu>
36760
36761         PR target/36399
36762         * config/i386/i386.h: Fix ABI on darwin x86-32.
36763
36764 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
36765
36766         * tree.h: Declare make_decl_rtl_for_debug.
36767         * varasm.c (make_decl_rtl_for_debug): New.
36768         * dwarf2out.c (rtl_for_decl_location): Call it.
36769         * cfgexpand.c (expand_debug_expr): Call it.
36770
36771 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
36772
36773         PR bootstrap/43399
36774         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
36775         mem_mode.
36776
36777         PR bootstrap/43403
36778         * var-tracking.c (vt_init_cfa_base): Do nothing if
36779         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
36780
36781 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
36782
36783         PR debug/42873
36784         * var-tracking.c (canonicalize_vars_star): New.
36785         (dataflow_post_merge_adjust): Use it.
36786
36787 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
36788
36789         PR debug/43058
36790         * var-tracking.c (non_suitable_const): New function.
36791         (add_uses): For DEBUG_INSNs with constants, don't record any
36792         value, instead just the constant value itself.
36793         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
36794         is not VAR_LOC_UNKNOWN_P, set var to the constant.
36795         (emit_notes_in_bb): Likewise.
36796         (emit_note_insn_var_location): For onepart variables if
36797         cur_loc is a VOIDmode constant, use DECL_MODE.
36798
36799 2010-03-18  Martin Jambor  <mjambor@suse.cz>
36800
36801         PR middle-end/42450
36802         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
36803         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
36804         all non-clones.  Moved call redirection...
36805         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
36806         (cgraph_materialize_all_clones): Dispose of all
36807         combined_args_to_skip bitmaps.
36808         (verify_cgraph_node): Do not check for edges pointing to wrong
36809         nodes in inline clones.
36810         * tree-inline.c (copy_bb): Call
36811         cgraph_redirect_edge_call_stmt_to_callee.
36812         * ipa.c (cgraph_remove_unreachable_nodes): Call
36813         cgraph_node_remove_callees even when there are used clones.
36814
36815 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
36816
36817         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
36818
36819 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
36820
36821         PR target/43383
36822         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
36823         for 32bit.
36824
36825 2010-03-18  Michael Matz  <matz@suse.de>
36826
36827         PR middle-end/43419
36828         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
36829         into sqrt(x) if we need to preserve signed zeros.
36830
36831 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
36832             Eric Botcazou  <ebotcazou@adacore.com>
36833
36834         PR rtl-optimization/43360
36835         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
36836         note if we don't know its invariant status.
36837
36838 2010-03-18  Michael Matz  <matz@suse.de>
36839
36840         PR tree-optimization/43402
36841         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
36842         PHI chains of ssa names registered for update.
36843
36844 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
36845
36846         PR target/42427
36847         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
36848         non-offsettable and pre_modify update addressing.
36849         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
36850         and "2" alternatives "#".
36851         (*movdd_softfloat32): Make all alternatives "#";
36852         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
36853         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
36854         (*movdf_softfloat32): Make all alternatives "#";
36855         (movdi): Use the new DIFD mode iterator to create a common splitter
36856         for movdi, movdf and movdd patterns.
36857
36858 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
36859
36860         * common.opt (dumpdir): Remove redundant tab.
36861
36862 2010-03-17  Martin Jambor  <mjambor@suse.cz>
36863
36864         PR tree-optimization/43347
36865         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
36866         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
36867
36868 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
36869
36870         PR rtl-optimization/42216
36871         * regrename.c (create_new_chain): New function, broken out from...
36872         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
36873         appending a use to an empty chain.
36874         (build_def_use): Remove previous changes that convert OP_INOUT to
36875         OP_OUT operands; instead detect the case where an OP_INOUT operand
36876         uses a previously untracked register and create an empty chain for it.
36877
36878 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
36879
36880         * doc/extend.texi (Function Attributes): Rewrite unfinished
36881         sentence in ms_abi documentation.
36882
36883 2010-03-17  Alan Modra  <amodra@gmail.com>
36884
36885         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
36886         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
36887         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
36888         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
36889
36890 2010-03-16  Richard Henderson  <rth@redhat.com>
36891
36892         PR middle-end/43365
36893         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
36894         (lower_try_finally): Save and restore eh_seq around the expansion
36895         of the try-finally.
36896
36897 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
36898
36899         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
36900         statements before splitting block.
36901
36902 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36903
36904         * doc/sourcebuild.texi (Testsuites): Fix markup.
36905         Use pathnames relative to gcc/testsuite.
36906         (Test Directives): Move description of how timeout is determined.
36907         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
36908         (C Tests): Correct gcc.misc-tests directory.
36909         Framework tests now live in gcc.test-framework.
36910
36911 2010-03-16  Richard Guenther  <rguenther@suse.de>
36912
36913         PR middle-end/43379
36914         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
36915         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
36916
36917 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
36918             Alexandre Oliva  <aoliva@redhat.com>
36919
36920         PR tree-optimization/42917
36921         * lambda-code.c (remove_iv): Skip debug statements.
36922         (lambda_loopnest_to_gcc_loopnest): Likewise.
36923         (not_interesting_stmt): Debug statements are not interesting.
36924
36925 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
36926
36927         PR debug/43051
36928         PR debug/43092
36929         * cselib.c (cselib_preserve_constants,
36930         cfa_base_preserved_val): New static variables.
36931         (preserve_only_constants): New function.
36932         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
36933         clear its REG_VALUES.  If cselib_preserve_constants, don't
36934         empty the whole hash table, but preserve there VALUEs with constants,
36935         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
36936         (cselib_preserve_cfa_base_value): New function.
36937         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
36938         (cselib_init): Change argument to int bitfield.  Set
36939         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
36940         is in it.
36941         (cselib_finish): Clear cselib_preserve_constants and
36942         cfa_base_preserved_val.
36943         * cselib.h (enum cselib_record_what): New enum.
36944         (cselib_init): Change argument to int.
36945         (cselib_preserve_cfa_base_value): New prototype.
36946         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
36947         * dse.c (dse_step1): Likewise.
36948         * cfgcleanup.c (thread_jump): Likewise.
36949         * sched-deps.c (sched_analyze): Likewise.
36950         * gcse.c (local_cprop_pass): Likewise.
36951         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
36952         If FN is non-NULL, call the callback always and whenever it returns
36953         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
36954         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
36955         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
36956         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
36957         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
36958         * var-tracking.c: Include recog.h.
36959         (bb_stack_adjust_offset): Remove.
36960         (vt_stack_adjustments): Don't call it, instead just gather the
36961         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
36962         (adjust_stack_reference): Remove.
36963         (compute_cfa_pointer): New function.
36964         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
36965         (struct adjust_mem_data): New type.
36966         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
36967         functions.
36968         (get_address_mode): New function.
36969         (replace_expr_with_values): Use it.
36970         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
36971         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
36972         (adjust_sets): Remove.
36973         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
36974         Use get_address_mode.
36975         (get_adjusted_src): Remove.
36976         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
36977         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
36978         (add_with_sets): Don't call adjust_sets.
36979         (fp_setter, vt_init_cfa_base): New functions.
36980         (vt_initialize): Change return type to bool.  Move most of pool etc.
36981         initialization to the beginning of the function from end.  Pass
36982         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
36983         If !frame_pointer_needed, call vt_stack_adjustment before mos
36984         vector is filled, call vt_init_cfa_base if argp/framep has been
36985         eliminated to sp.  If frame_pointer_needed and argp/framep has
36986         been eliminated to hard frame pointer, set
36987         hard_frame_pointer_adjustment and call vt_init_cfa_base after
36988         encountering fp setter in the prologue.  For MO_ADJUST, call
36989         log_op_type before pusing the op into mos vector, not afterwards.
36990         Call adjust_insn before cselib_process_insn/add_with_sets,
36991         call cancel_changes (0) afterwards.
36992         (variable_tracking_main_1): Adjust for vt_initialize calling
36993         vt_stack_adjustments and returning whether it succeeded or not.
36994
36995 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
36996
36997         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
36998         debug statements.
36999
37000 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
37001
37002         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
37003         has been set.
37004         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
37005         drap_reg has not been set.
37006
37007 2010-03-15  Michael Matz  <matz@suse.de>
37008
37009         PR middle-end/43300
37010         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
37011         use it to expand block copies.
37012         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
37013         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
37014         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
37015
37016 2010-03-15  Richard Guenther  <rguenther@suse.de>
37017
37018         PR tree-optimization/43367
37019         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
37020         elimination check.
37021
37022 2010-03-15  Richard Guenther  <rguenther@suse.de>
37023
37024         PR tree-optimization/43317
37025         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
37026
37027 2010-03-15  Martin Jambor  <mjambor@suse.cz>
37028
37029         PR tree-optimization/43141
37030         * tree-sra.c (create_abstract_origin): New function.
37031         (modify_function): Call create_abstract_origin.
37032
37033 2010-03-15  Chris Demetriou  <cgd@google.com>
37034
37035         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
37036         wasn't copied.
37037
37038 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
37039
37040         PR middle-end/43354
37041         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
37042         call insert_out_of_ssa_copy for default definitions.
37043
37044 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
37045
37046         * graphite-clast-to-gimple.c (my_long_long): Defined.
37047         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
37048         * graphite-sese-to-poly.c (my_long_long): Defined.
37049         (scop_ivs_can_be_represented): Use it.
37050
37051 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
37052
37053         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
37054         graphite-max-bbs-per-function, and loop-block-tile-size.
37055         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
37056         with "maximum".
37057         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
37058
37059 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
37060
37061         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
37062         forward declaration.
37063         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
37064         (add_upper_bounds_from_estimated_nit): New.
37065         (build_loop_iteration_domains): Use it.
37066
37067 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
37068
37069         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
37070
37071 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
37072
37073         PR middle-end/43306
37074         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
37075         should be an INTEGER_CST.  Also handle CASE_CONVERT.
37076
37077 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
37078
37079         * graphite.c (graphite_initialize): To bound the number of bbs per
37080         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
37081         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
37082         * doc/invoke.texi: Document it.
37083
37084 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
37085
37086         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
37087         * graphite-sese-to-poly.h (build_poly_scop): Same.
37088
37089 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
37090
37091         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
37092         the number of parameters in the scop.  Use as an upper bound
37093         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
37094         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
37095         * doc/invoke.texi: Document it.
37096
37097 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
37098
37099         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
37100         * doc/c-tree.texi: Remove.
37101         * doc/generic.texi: Merge c-tree.texi here.
37102         * doc/gccint.texi (Trees): Remove menu entry.
37103         (c-tree.texi): Remove @include.
37104         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
37105         * doc/languages.texi (Reading RTL): Ditto.
37106
37107 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
37108
37109         PR target/42869
37110         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
37111
37112 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
37113
37114         PR middle-end/42431
37115         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
37116         code added to work around reload clobbering CONST insns.
37117
37118 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
37119
37120         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
37121         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
37122         (cselib_preserve_only_values): Remove retain argument, don't
37123         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
37124         * cselib.h (cselib_preserve_only_values): Remove retain argument.
37125         * var-tracking.c (micro_operation): Move insn field before union.
37126         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
37127         (struct variable_tracking_info_def): Remove n_mos field, change
37128         mos into a vector of micro_operations.
37129         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
37130         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
37131         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
37132         changing into a vector.
37133         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
37134         come before all other uops generated by add_stores.
37135         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
37136         argument removal.
37137         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
37138         a vector.  Run just one pass over the bbs instead of separate counting
37139         and computation phase.
37140         (vt_finalize): Free VTI (bb)->mos vector instead of array.
37141
37142         PR debug/43329
37143         * tree-inline.c (remap_decls): Put old_var rather than origin_var
37144         into *nonlocalized_list vector.
37145         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
37146         even if origin is non-NULL.
37147         (gen_variable_die): Likewise.
37148         (process_scope_var): Don't change origin.
37149         (gen_decl_die): Likewise.
37150         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
37151         before adding new edges instead of after it, fix moving over
37152         debug stmts.
37153
37154 2010-03-11  David S. Miller  <davem@davemloft.net>
37155
37156         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
37157         of four.
37158         * configure: Rebuild.
37159
37160 2010-03-11  Martin Jambor  <mjambor@suse.cz>
37161
37162         PR tree-optimization/43257
37163         * tree.c (assign_assembler_name_if_neeeded): New function.
37164         (free_lang_data_in_cgraph): Assembler name assignment moved to the
37165         above new function.
37166         * tree.h (assign_assembler_name_if_neeeded): Declare.
37167         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
37168         the function if needed.
37169
37170 2010-03-11  Chris Demetriou  <cgd@google.com>
37171
37172         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
37173         include/stdint-gcc.h, and include/stdint.h world-readable.
37174
37175 2010-03-11  Richard Guenther  <rguenther@suse.de>
37176
37177         PR tree-optimization/43255
37178         * tree-vrp.c (process_assert_insertions_for): Do not insert
37179         asserts for trivial conditions.
37180
37181 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
37182
37183         PR tree-optimization/43280
37184         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
37185         generation.  Move calculation of size out of the if branch.
37186         (find_bswap): Modify compare number generation.
37187
37188 2010-03-11  Richard Guenther  <rguenther@suse.de>
37189
37190         PR lto/43200
37191         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
37192         (input_gimple_stmt): Fixup handled component types during
37193         operand read.  Also fix up decls in ADDR_EXPRs.
37194
37195 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
37196
37197         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
37198         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
37199
37200 2010-03-10  Jan Hubicka  <jh@suse.cz>
37201
37202         PR c/43288
37203         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
37204         * varasm.c (get_variable_section): Don't do that here...
37205         (make_decl_rtl): ... and here.
37206         (do_assemble_alias): Produce decl RTL.
37207         (assemble_alias): Likewise.
37208
37209 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
37210
37211         PR debug/43290
37212         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
37213         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
37214         of fde->vdrap_reg.
37215         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
37216         (based_loc_descr): Only express drap or vdrap regno based expressions
37217         using DW_OP_fbreg when not optimizing.
37218         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
37219         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
37220         REG_CFA_SET_VDRAP note.
37221
37222 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
37223
37224         PR tree-optimization/43236
37225         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
37226         error in calculation of base address in reverse iteration case.
37227         (generate_builtin): Take number of latch executions if the statement
37228         is in the latch.
37229
37230 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
37231
37232         PR middle-end/42859
37233         * tree-eh.c: Include pointer-set.h.
37234         (lower_eh_dispatch): Filter out duplicate case labels and
37235         remove the unneeded edge when the label is unused.  Return
37236         true when some edges are removed.
37237         (execute_lower_eh_dispatch): When any lowering resulted in
37238         removing an edge, also delete unreachable blocks.
37239
37240 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
37241
37242         PR bootstrap/43287
37243         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
37244         UNSPEC_MACHOPIC_OFFSET.
37245
37246 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
37247
37248         PR target/43294
37249         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
37250         (m68k_delegitimize_address): New function.
37251
37252 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
37253
37254         PR debug/43299
37255         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
37256
37257         PR debug/43299
37258         * var-tracking.c (adjust_sets): New function.
37259         (count_with_sets, add_with_sets): Use it.
37260         (get_adjusted_src): New inline function.
37261         (add_stores): Use it.
37262
37263         PR debug/43304
37264         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
37265         call cselib_dummy_expand_value_rtx_cb instead of
37266         cselib_expand_value_rtx_cb.
37267
37268         PR debug/43293
37269         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
37270         * config/i386/i386.c: Include debug.h and dwarf2out.h.
37271         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
37272         and .cfi_endproc around the pic thunks.
37273         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
37274         all queued unwind info register saves are saved before the call.
37275         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
37276         considered as sp-=4 for unwind info and the pop as sp+=4 which
37277         also clobbers dest, but doesn't actually restore it.
37278
37279         PR debug/43290
37280         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
37281         RTX_FRAME_RELATED_P.
37282
37283 2010-03-09  Jie Zhang  <jie@codesourcery.com>
37284
37285         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
37286         whitespaces in output template.
37287
37288 2010-03-09  Jie Zhang  <jie@codesourcery.com>
37289
37290         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
37291         out array boundary.
37292
37293 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
37294
37295         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
37296         builtins.exp in a separate job.
37297
37298 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37299
37300         * graphite-sese-to-poly.c (add_param_constraints): Use
37301         lower_bound_in_type and upper_bound_in_type.
37302
37303 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37304
37305         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
37306         instead of unsigned_type_node.
37307
37308 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37309             Reza Yazdani  <reza.yazdani@amd.com>
37310
37311         PR middle-end/43065
37312         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
37313         on pointer type parameters.
37314
37315 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
37316
37317         PR middle-end/42644
37318         PR middle-end/42130
37319         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
37320         handle conversions from pointer to integers.
37321         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
37322         induction variable, to be able to work with code generated by CLooG.
37323         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
37324         (build_poly_scop): Bail out if we cannot codegen a loop.
37325
37326 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
37327
37328         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
37329         code generation with gloog_error.
37330
37331 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37332
37333         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
37334         Call fold_convert on all the returned values.
37335         (expand_scalar_variables_expr): Pass to
37336         expand_scalar_variables_ssa_name the type of the resulting expression.
37337
37338 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37339
37340         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
37341         ppl_min_for_le_pointset.
37342         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
37343         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
37344
37345 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37346
37347         * graphite-dependences.c (map_into_dep_poly): Removed.
37348         (dependence_polyhedron_1): Use combine_context_id_scat.
37349
37350 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37351
37352         * graphite-poly.h (struct poly_scattering): Add layout documentation.
37353         (struct poly_bb): Same.
37354         (combine_context_id_scat): New.
37355
37356 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37357
37358         PR middle-end/42326
37359         * sese.c (name_defined_in_loop_p): Return false for default
37360         definitions.
37361
37362 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37363
37364         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
37365         and clean up the logic.
37366
37367 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37368
37369         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
37370         early return.
37371
37372 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
37373
37374         * var-tracking.c (remove_cselib_value_chains): Define only for
37375         ENABLE_CHECKING.
37376         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
37377         delete_slot_part, emit_notes_for_differences_1): Don't call
37378         remove_cselib_value_chains here.
37379         (set_slot_part, emit_notes_for_differences_2): Don't call
37380         add_cselib_value_chains here.
37381         (preserved_values): New vector.
37382         (preserve_value): New function.
37383         (add_uses, add_stores, vt_add_function_parameters): Use it
37384         instead of cselib_preserve_value.
37385         (changed_values_stack): New vector.
37386         (check_changed_vars_0): New function.
37387         (check_changed_vars_1, check_changed_vars_2): Use it.
37388         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
37389         changed_values_stack VALUEs.
37390         (vt_emit_notes): For all preserved_values call
37391         add_cselib_value_chains.  If ENABLE_CHECKING call
37392         remove_cselib_value_chains before verifying value_chains is empty.
37393         Initialize and free changed_values_stack.
37394         (vt_initialize): Initialize preserved_values.
37395         (vt_finalize): Free preserved_values.
37396
37397 2010-03-08  Richard Guenther  <rguenther@suse.de>
37398
37399         PR tree-optimization/43269
37400         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
37401         region detection.
37402
37403 2010-03-08  Martin Jambor  <mjambor@suse.cz>
37404
37405         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
37406         (ipa_is_param_called): Removed.
37407         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
37408         (ipa_print_node_params): Do not print the called flag.
37409         (ipa_write_node_info): Do not stream the called flag.
37410         (ipa_read_node_info): Likewise.
37411
37412 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
37413
37414         PR debug/43176
37415         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
37416         * cselib.c (struct expand_value_data): Add dummy field.
37417         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
37418         dummy to false.
37419         (cselib_dummy_expand_value_rtx_cb): New function.
37420         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
37421         any rtl.
37422         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
37423         * var-tracking.c: Include pointer-set.h.
37424         (variable): Change n_var_parts to char from int.  Add
37425         cur_loc_changed and in_changed_variables fields.
37426         (variable_canonicalize): Remove.
37427         (shared_var_p): New inline function.
37428         (unshare_variable): Maintain cur_loc_changed and
37429         in_changed_variables fields.  If var was in changed_variables,
37430         replace it there with new_var.  Just copy cur_loc instead of
37431         resetting it to something else.
37432         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
37433         (dataflow_set_union): Don't call variable_canonicalize.
37434         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
37435         of their DEBUG_EXPR_TREE_DECLs.
37436         (canonicalize_loc_order_check): Verify that cur_loc is NULL
37437         and in_changed_variables and cur_loc_changed is false.
37438         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
37439         and cur_loc_changed.  Don't update cur_loc here.
37440         (variable_merge_over_src): Don't call variable_canonicalize.
37441         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
37442         removing loc that is equal to cur_loc, clear cur_loc,
37443         set cur_loc_changed and ensure variable_was_changed is called.
37444         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
37445         compare pointers in cur_loc check, if it is equal to loc,
37446         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
37447         (variable_different_p): Remove compare_current_location argument,
37448         don't compare cur_loc.
37449         (dataflow_set_different_1): Adjust variable_different_p caller.
37450         (variable_was_changed): If dv had some var in changed_variables
37451         already, reset in_changed_variables flag for it and propagate
37452         cur_loc_changed over to the new variable.  On empty var
37453         always set cur_loc_changed.  Set in_changed_variables on whatever
37454         var is added to changed_variables.
37455         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
37456         Use shared_var_p.  When removing loc that is equal to cur_loc,
37457         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
37458         end, don't set it to something else, just call variable_was_changed.
37459         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
37460         loc being removed, clear cur_loc and set cur_loc_changed.
37461         Set cur_loc_changed if all locations have been removed.
37462         (struct expand_loc_callback_data): New type.
37463         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
37464         allocated.  Always create SUBREGs if simplify_subreg failed.
37465         Prefer to use cur_loc, when that fails and still in
37466         changed_variables (and seen first time) recompute it.  Set
37467         cur_loc_changed of variables which had to change cur_loc and
37468         compute elcd->cur_loc_changed if any of the subexpressions used
37469         had to change cur_loc.
37470         (vt_expand_loc): Adjust to pass arguments in
37471         expand_loc_callback_data structure.
37472         (vt_expand_loc_dummy): New function.
37473         (emitted_notes): New variable.
37474         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
37475         that weren't used for any other decl in current
37476         emit_notes_for_changes call call vt_expand_loc_dummy to update
37477         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
37478         first loc_chain location if NULL before.  Always use just
37479         cur_loc instead of first loc_chain location.  When cur_loc_changed
37480         is false, when not --enable-checking=rtl just don't emit any note.
37481         When rtl checking, compute the note and assert it is the same
37482         as previous note.  Clear cur_loc_changed and in_changed_variables
37483         at the end before removing from changed_variables.
37484         (check_changed_vars_3): New function.
37485         (emit_notes_for_changes): Traverse changed_vars to call
37486         check_changed_vars_3 on each changed var.
37487         (emit_notes_for_differences_1): Clear cur_loc_changed and
37488         in_changed_variables.  Recompute cur_loc of new_var.
37489         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
37490         (vt_emit_notes): Initialize and destroy emitted_notes.
37491
37492 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
37493
37494         PR rtl-optimization/42220
37495         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
37496         Use verify_reg_tracked to determine if we should use OP_OUT rather
37497         than OP_INOUT.
37498         (build_def_use): If we see an in-out operand for a register that we
37499         know nothing about, treat is an output if possible, fail the block if
37500         not.
37501
37502 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
37503
37504         PR debug/42897
37505         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
37506         permanently.
37507
37508 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
37509
37510         PR debug/42897
37511         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
37512         uses of relevant DEFs that are dead outside the loop too.
37513
37514 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
37515
37516         * var-tracking.c (dataflow_set_merge): Swap src and src2.
37517         Reverted:
37518         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
37519         PR debug/41371
37520         * var-tracking.c (values_to_unmark): New variable.
37521         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
37522         values_to_unmark vector.  Moved body to...
37523         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
37524         instead queue it into values_to_unmark vector.
37525         (vt_find_locations): Free values_to_unmark vector.
37526
37527 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
37528
37529         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
37530         (site.exp): Export them when plugins are enabled.
37531
37532 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
37533
37534         PR middle-end/42326
37535         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
37536         that contain scevs.
37537         (chrec_fold_multiply): Same.
37538
37539 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
37540
37541         PR c/43248
37542         * c-decl.c (build_compound_literal): Return early if init is
37543         an error_mark_node.
37544
37545 2010-03-04  Martin Jambor  <mjambor@suse.cz>
37546
37547         PR tree-optimization/43164
37548         PR tree-optimization/43191
37549         * tree-sra.c (type_consists_of_records_p): Reject records with
37550         zero-size bit-fields at the end.
37551
37552 2010-03-04  Mike Stump  <mikestump@comcast.net>
37553
37554         * Makefile.in (TAGS): Remove *.y.
37555
37556 2010-03-04  Richard Guenther  <rguenther@suse.de>
37557
37558         PR tree-optimization/40761
37559         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
37560         in reverse order.
37561         (my_rev_post_order_compute): New function.
37562         (init_pre): Call it.
37563
37564 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
37565
37566         PR middle-end/43209
37567         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
37568         decrease the cost of an IV candidate when the cost is infinite.
37569
37570 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37571
37572         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
37573         Use '3DNow!' for the extension of that name, ensure normal space
37574         after the string.
37575         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
37576
37577 2010-03-03  Jeff Law  <law@redhat.com>
37578
37579         * PR middle-end/32693
37580         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
37581         than gen_rtx_SUBREG.
37582         (extract_bit_field_1): Likewise.
37583
37584 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
37585
37586         * doc/sourcebuild.texi (Test directives): Document that arguments
37587         include-opts and exclude-opts are now optional for dg-skip-if,
37588         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
37589
37590 2010-03-03  Jason Merrill  <jason@redhat.com>
37591
37592         PR c++/12909
37593         * cgraph.h (varpool_node): Add extra_name field.
37594         * varpool.c (varpool_extra_name_alias): New.
37595         (varpool_assemble_decl): Emit extra name aliases.
37596         (varpool_mark_needed_node): Look past an extra name alias.
37597         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
37598         * lto-streamer-in.c (lto_input_tree): Read it.
37599         * lto-streamer-out.c (output_unreferenced_globals): Write it.
37600
37601 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
37602
37603         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
37604         (sparc*-*-solaris2*): ...this.
37605
37606 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
37607
37608         PR debug/43229
37609         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
37610         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
37611         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
37612         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
37613
37614         PR debug/43237
37615         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
37616         fallthrough to default handling, just with want_address 0 instead of 2.
37617         For single element lists, add_AT_loc directly, otherwise create an
37618         artificial variable DIE and stick location list to it.
37619
37620         PR debug/43177
37621         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
37622         (VAL_EXPR_HAS_REVERSE): Define.
37623         (reverse_op): New function.
37624         (add_stores): For reversible operations add an extra MO_VAL_USE.
37625
37626 2010-03-02  Jason Merrill  <jason@redhat.com>
37627
37628         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
37629
37630 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
37631
37632         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
37633         (sparc64-*-linux*): Likewise.
37634         (sparc64-*-solaris2*): Include assembler files before linker ones.
37635         (sparc-*-solaris2*): Simplify and reorder to match previous case.
37636         * config/sparc/gas.h: Delete.
37637         * config/sparc/sol2-64.h: Add copyright notice.
37638         * config/sparc/sol2-gas-bi.h: Likewise.
37639         * config/sparc/sol2-gld.h: Likewise.
37640         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
37641         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
37642         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
37643         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
37644         (sparc_elf_asm_named_section): Rename into...
37645         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
37646
37647 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
37648
37649         * config/alpha/alpha.c (override_options): Fix -mtune error message.
37650
37651 2010-03-02  Jeff Law  <law@redhat.com>
37652
37653         PR middle-end/42431
37654         * reload1.c (rtx_p, substitute_stack): Declare.
37655         (substitute): Record addresses of changed rtxs.
37656         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
37657         Restore the original rtx when complete.
37658         (reload): Free subsitute_stack when complete.
37659
37660 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
37661
37662         * doc/gccint.texi (menu): Add Testsuites as a chapter.
37663         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
37664         new chapter.
37665         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
37666         LTO Testing, gcov Testing, profopt Testing, compat Testing,
37667         Torture Tests): Change from subsection to section.
37668
37669 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
37670             Steven Bosscher  <steven@gcc.gnu.org>
37671
37672         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
37673         instead of bb.
37674
37675 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
37676
37677         PR middle-end/42640
37678         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
37679         the assignment from the new induction variable to the assignment
37680         of the value from the original loop PHI function.
37681
37682 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
37683             Daniel Jacobowitz  <dan@codesourcery.com>
37684
37685         * doc/sourcebuild.texi (Test directives): Clarify options to
37686         dg-skip-if.
37687
37688 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37689
37690         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
37691         Disable cfi directives unless GCC and gas agree on using read-only
37692         .eh_frame sections for 64-bit.
37693         * configure: Regenerate.
37694
37695 2010-03-01  Richard Guenther  <rguenther@suse.de>
37696
37697         PR tree-optimization/43220
37698         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
37699         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
37700
37701 2010-03-01  Richard Guenther  <rguenther@suse.de>
37702             Martin Jambor  <mjambor@suse.cz>
37703
37704         PR middle-end/41250
37705         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
37706         gimplified parameters.
37707
37708 2010-03-01  Christian Bruel  <christian.bruel@st.com>
37709
37710         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
37711
37712 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
37713
37714         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
37715
37716 2010-03-01  Richard Guenther  <rguenther@suse.de>
37717
37718         PR middle-end/43213
37719         * expr.c (expand_assignment): Use the alias-oracle to tell
37720         if the rhs aliases the result decl.
37721
37722 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37723
37724         PR pch/14940
37725         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
37726         to sol_gt_pch_get_address.
37727         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
37728         64-bit, SPARC and x86.
37729         (sol_gt_pch_get_address): New function.
37730
37731 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
37732
37733         * toplev.h (inform_n, error_n): Declare.
37734         * diagnostic.c (inform_n, error_n): New function.
37735
37736 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
37737
37738         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
37739         has no rtl yet when processing local_decls, queue it and recheck
37740         if deferred stack allocation hasn't assigned it rtl.
37741
37742 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
37743
37744         * config/sh/sh.c (unspec_bbr_uid): New.
37745         (gen_block_redirect): Use it instead of INSN_UID.
37746         (gen_far_branch): Likewise.
37747
37748 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
37749
37750         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
37751         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
37752
37753 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37754
37755         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
37756         (Warning Options): -Wno-conversion-null is valid for
37757         Objective-C++ as well.
37758         * doc/tm.texi (Named Address Spaces): Likewise.
37759         * doc/plugins.texi (Plugins): Replace TABs with spaces.
37760         * doc/tree-ssa.texi (Tree SSA): Likewise.
37761
37762 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
37763
37764         PR bootstrap/43202
37765         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
37766         by default.  Don't set the default arch for
37767         i[34567]86-*-darwin*|x86_64-*-darwin*.
37768
37769 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
37770
37771         PR bootstrap/43202
37772         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
37773         default.  Set the default 32bit/64bit archs with $with_arch
37774         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
37775
37776 2010-02-27  Richard Guenther  <rguenther@suse.de>
37777
37778         PR tree-optimization/43186
37779         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
37780         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
37781         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
37782         unroller iterations.
37783
37784 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
37785
37786         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
37787         required and i[34567]86-*-* targets don't support 64bit ISA.
37788
37789 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
37790
37791         PR ada/43096
37792         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
37793         the same alias set.
37794
37795 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
37796
37797         * config.gcc: Set the default arch at least to Prescott for
37798         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
37799         if SSE math is enabled.
37800
37801 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37802
37803         * diagnostic.c (diagnostic_initialize): Update.
37804         (diagnostic_report_diagnostic): Test inhibit_notes_p for
37805         informative notes.
37806         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
37807         (diagnostic_inhibit_notes): New.
37808         * toplev.c (process_options): inhibit notes with -fcompare-debug.
37809
37810 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37811
37812         PR c/20631
37813         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
37814         * doc/standards.texi: Likewise.
37815         * doc/extend.texi: Likewise.
37816         * doc/trouble.texi: Likewise.
37817         * doc/cppopts.texi: Likewise.
37818         * doc/install.texi: Likewise.
37819         * c.opt (std=c90,std=gnu90): New options.
37820         * c-opts.c (c_common_handle_option): Handle them.
37821
37822 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37823
37824         PR c/24577
37825         * c-decl.c (undeclared_variable): Use an informative note.
37826
37827 2010-02-26  Richard Guenther  <rguenther@suse.de>
37828
37829         PR tree-optimization/43186
37830         * gimple.h (gimple_fold): Remove.
37831         * gimple.c (gimple_fold): Remove.  Inline into single user ...
37832         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
37833         Try harder for conditions.
37834
37835 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
37836
37837         PR debug/43190
37838         * function.c (used_types_insert): Don't skip through named pointer
37839         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
37840         and it is different from the main variant's type.
37841
37842 2010-02-26  Nick Clifton  <nickc@redhat.com>
37843
37844         * config/rx/rx.md (sminsi3): Remove bogus alternative.
37845
37846 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
37847
37848         * config.gcc: Support --with-fpmath=sse for x86.
37849
37850         * config/i386/ssemath.h: New.
37851
37852         * doc/install.texi (--with-fpmath=sse): Documented.
37853
37854 2010-02-26  Richard Guenther  <rguenther@suse.de>
37855
37856         PR tree-optimization/43188
37857         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
37858         vector types of over-aligned element type.
37859
37860 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
37861
37862         PR target/43175
37863         * config/i386/i386.c (expand_vec_perm_blend): Use correct
37864         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
37865
37866 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
37867
37868         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
37869
37870 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
37871
37872         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
37873         * var-tracking.c: Include diagnostic.h.
37874         (debug_dv): New function.
37875         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
37876
37877         PR debug/43160
37878         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
37879         (add_value_chain, add_value_chains, remove_value_chain,
37880         remove_value_chains): Handle DEBUG_EXPRs.
37881         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
37882
37883         PR debug/43161
37884         * regcprop.c (struct queued_debug_insn_change): New type.
37885         (struct value_data_entry): Add debug_insn_changes field.
37886         (struct value_data): Add n_debug_insn_changes field.
37887         (debug_insn_changes_pool): New variable.
37888         (free_debug_insn_changes, apply_debug_insn_changes,
37889         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
37890         (kill_value_one_regno): Call free_debug_insn_changes if needed.
37891         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
37892         fields.
37893         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
37894         changes for them.
37895         (copyprop_hardreg_forward_1): Don't call apply_change_group for
37896         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
37897         changes, call cprop_find_used_regs via note_stores.
37898         (copyprop_hardreg_forward): When copying vd from predecessor
37899         which has any queued DEBUG_INSN changes, make sure the pointers are
37900         cleared.  At the end call df_analyze and then if there are any
37901         DEBUG_INSN changes queued at the end of some basic block for still
37902         live registers, apply them.
37903         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
37904
37905 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
37906
37907         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
37908         (arm*-*-*): Ditto.
37909
37910 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
37911
37912         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
37913         targets.  Set the default with_cpu/with_arch from arch/cpu.
37914         Allow x86-64 and native for with_cpu/with_arch.
37915
37916 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
37917
37918         * ebitmap.c: Change calls to verify_popcount with calls to
37919         sbitmap_verify_popcount.
37920         (ebitmap_clear_bit): Fixed map->cacheindex test and
37921         map>cache update when bit clearing results in an empty
37922         element.
37923
37924 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
37925
37926         PR target/43154
37927         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
37928         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
37929         and support both V2DF and V2DI modes.
37930         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
37931         support both V2DF and V2DI modes.
37932         (general): Delete trailing whitespace from a few patterns.
37933
37934         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
37935         V2DF/V2DI interleave high/low builtins.
37936
37937         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
37938         new VSX builtins.
37939
37940         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
37941         interleave high/low functions.
37942
37943 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
37944
37945         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
37946         #pragma extern_prefix.
37947
37948 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
37949
37950         PR debug/43166
37951         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
37952         BLKmode, assert op0 is a MEM and just adjust its mode.
37953
37954         PR debug/43165
37955         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
37956         if bitpos isn't multiple of mode's bitsize.
37957
37958 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37959
37960         * c.opt (-ftemplate-depth=): New.
37961         (-ftemplate-depth-): Deprecate.
37962         * optc-gen.awk: Handle -ftemplate-depth=.
37963         * opth-gen.awk: Likewise.
37964         * c-opts.c (c_common_handle_option): Likewise.
37965         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
37966
37967 2010-02-24  Jason Merrill  <jason@redhat.com>
37968
37969         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
37970
37971 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37972
37973         * cfg.c (alloc_aux_for_block): Remove inline.
37974         (alloc_aux_for_edge): Likewise.
37975
37976 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37977
37978         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
37979
37980 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37981
37982         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
37983         * config/i386/sol2-gas.h: New file.
37984         * config.gcc (i[34567]86-*-solaris2*): Use it.
37985
37986 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37987
37988         PR c/43128
37989         * c-typeck.c (ep_convert_and_check): New.
37990         (build_conditional_expr): Use it.
37991         (build_binary_op): Likewise.
37992
37993 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
37994
37995         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
37996
37997         PR debug/43150
37998         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
37999         bounds even for -O+.
38000         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
38001         expr needs to have DECL_NAME set.
38002
38003 2010-02-24  Nick Clifton  <nickc@redhat.com>
38004
38005         * config/mep/mep.c: Include gimple.h.
38006         (mep_function_uses_sp): Delete unused function.
38007         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
38008         parameters.  Use unsigned integers to count args.  Return a
38009         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
38010
38011 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
38012
38013         PR target/43107
38014         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
38015         greater or equal to nelt instead of 2 * nelt.
38016         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
38017         with nelt - 1.
38018
38019 2010-02-23  Jason Merrill  <jason@redhat.com>
38020
38021         PR debug/42800
38022         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
38023         in cfun->local_decls even if they have register types.
38024
38025         PR c++/42837
38026         * stor-layout.c (place_field): Don't warn about unnecessary
38027         DECL_PACKED if the type is packed.
38028
38029 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
38030
38031         PR target/43139
38032         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
38033         GOTOFF relocs, even when the base reg isn't pic pointer.
38034
38035 2010-02-23  Michael Matz  <matz@suse.de>
38036
38037         PR debug/43077
38038         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
38039         (expand_gimple_basic_block): Generate and use debug temps if there
38040         are debug uses left after the last real use of TERed ssa names.
38041         Unlink debug immediate uses when they are expanded.
38042
38043 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
38044
38045         PR 43123
38046         * config/i386/i386.c (override_options): Reorganise to provide
38047         better error messages.
38048
38049 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
38050
38051         PR middle-end/43083
38052         * graphite-scop-detection.c (create_single_exit_edge): Move
38053         the call to find_single_exit_edge to....
38054         (create_sese_edges): ...here.  Don't handle multiple edges
38055         exiting the function.
38056         (build_graphite_scops): Don't handle multiple edges
38057         exiting the function.
38058
38059 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
38060
38061         PR middle-end/43097
38062         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
38063         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
38064
38065 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
38066
38067         PR middle-end/43026
38068         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
38069
38070 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
38071
38072         PR c++/43126
38073         * c-typeck.c (convert_arguments): Print declaration location.
38074         * c-common.c (validate_nargs): Rename as
38075         builtin_function_validate_nargs.
38076         (check_builtin_function_arguments): Update.
38077
38078 2010-02-22  Richard Guenther  <rguenther@suse.de>
38079
38080         PR lto/43045
38081         * tree-inline.c (declare_return_variable): Use the type of
38082         the call stmt lhs if available.
38083
38084 2010-02-22  Duncan Sands  <baldrick@free.fr>
38085
38086         * passes.c (register_pass): Always consider all pass lists when
38087         ref_pass_instance_number is zero.
38088
38089 2010-02-22  Richard Guenther  <rguenther@suse.de>
38090
38091         PR tree-optimization/42749
38092         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
38093         parameter.  Do arithmetic in the original type.
38094         (update_accumulator_with_ops): Likewise.
38095         (adjust_accumulator_values): Adjust.
38096
38097 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
38098
38099         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
38100         (QI to BLKmode splitter): New splitter.
38101
38102 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
38103
38104         * config/i386/i386.c (initial_ix86_tune_features): Turn on
38105         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
38106
38107 2010-02-22  Richard Guenther  <rguenther@suse.de>
38108
38109         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
38110
38111 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
38112
38113         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
38114         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
38115         ($(T)crti.o, $(T)crtn.o): Remove rules.
38116
38117 2010-02-21  Tobias Burnus  <burnus@net-b.de>
38118
38119         PR fortran/35259
38120         * doc/invoke.texi (-fassociative-math): Document that this
38121         option is automatically enabled for Fortran.
38122
38123 2010-02-20  David S. Miller  <davem@davemloft.net>
38124
38125         * configure.ac: Test if linker and assembler properly support
38126         GOTDATA_OP relocations.
38127         * configure: Rebuild.
38128         * config.in: Likewise.
38129         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
38130         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
38131         (movsi_high_pic): Likewise.
38132         (movdi_lo_sum_pic): Likewise.
38133         (movdi_high_pic): Likewise.
38134         (movsi_pic_gotdata_op): New pattern.
38135         (movdi_pic_gotdata_op): Likewise.
38136         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
38137         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
38138
38139 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
38140
38141         PR target/43067
38142         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
38143         attribute to ssemul.
38144         (xop_mulv2div2di3_high): Ditto.
38145
38146 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
38147
38148         PR c++/35669
38149         * c.opt (Wconversion-null): New option.
38150         * doc/invoke.texi (Wconversion-null): Document.
38151
38152 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
38153
38154         * common.opt (Wlarger-than-): Add Undocumented.
38155
38156 2010-02-19  Mike Stump  <mikestump@comcast.net>
38157
38158         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
38159
38160 2010-02-19  Jason Merrill  <jason@redhat.com>
38161
38162         PR target/40332
38163         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
38164         * configure: Likewise.
38165
38166 2010-02-20  Alan Modra  <amodra@gmail.com>
38167
38168         PR middle-end/42344
38169         * cgraph.h (cgraph_make_decl_local): Declare.
38170         * cgraph.c (cgraph_make_decl_local): New function.
38171         (cgraph_make_node_local): Use it.
38172         * cgraphunit.c (cgraph_function_versioning): Likewise.
38173         * ipa.c (function_and_variable_visibility): Likewise.
38174
38175 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
38176
38177         PR bootstrap/43121
38178         * except.c (sjlj_emit_function_enter): Don't call
38179         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
38180         directly.
38181         * rtl.h (add_reg_br_prob_note): Remove prototype.
38182
38183 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
38184
38185         PR 41779
38186         * c-common.c (conversion_warning): Remove widening conversions
38187         before checking the conversion of integers to reals.
38188
38189 2010-02-19  Mike Stump  <mikestump@comcast.net>
38190
38191         PR middle-end/43125
38192         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
38193
38194         PR objc/43061
38195         * cgraphunit.c (process_function_and_variable_attributes): Check
38196         DECL_PRESERVE_P instead of looking up attribute "used".
38197         * ipa-pure-const.c (check_decl): Likewise.
38198         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
38199         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
38200         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
38201         instead of attribute "used".
38202         * config/sol2-c.c (solaris_pragma_init): Likewise.
38203         (solaris_pragma_fini): Likewise.
38204
38205 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
38206
38207         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
38208         Use XCNEW instead of xcalloc.
38209         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
38210         XNEW instead of xmalloc.
38211         (get_fields): Use XNEWVEC instead of xmalloc.
38212
38213         PR debug/43084
38214         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
38215         populate vars array.
38216         (create_new_general_access): For debug stmts just reset value.
38217         (get_stmt_accesses): For accesses within debug stmts just record them
38218         using add_access_to_acc_sites instead of preventing the peeling or
38219         counting them as accesses.
38220
38221         PR middle-end/42233
38222         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
38223
38224 2010-02-19  Richard Guenther  <rguenther@suse.de>
38225
38226         PR tree-optimization/42916
38227         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
38228         instructions.
38229
38230 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
38231
38232         * configure.ac: Replace all uses of changequote in macro arguments
38233         with proper quoting.
38234
38235 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
38236
38237         PR middle-end/42233
38238         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
38239
38240 2010-02-19  Richard Guenther  <rguenther@suse.de>
38241
38242         PR tree-optimization/42944
38243         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
38244         test for aliasing with errno.
38245
38246 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
38247
38248         PR middle-end/42233
38249         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
38250         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
38251         * dojump.c: Include output.h.
38252         (inv): New inline function.
38253         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
38254         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
38255         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
38256         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
38257         argument, pass it down to other calls.
38258         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
38259         add REG_BR_PROB note to the conditional jump.
38260         * cfgexpand.c (add_reg_br_prob_note): Removed.
38261         (expand_gimple_cond): Don't call it, add the probability
38262         as last argument to jumpif_1/jumpifnot_1.
38263         * Makefile.in (dojump.o): Depend on output.h.
38264         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
38265         callers.
38266         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
38267         * stmt.c (do_jump_if_equal): Likewise.
38268         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
38269         * loop-unswitch.c (compare_and_jump_seq): Likewise.
38270         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
38271         Likewise.
38272         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
38273         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
38274         jumpifnot_1 callers.
38275         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
38276         callers.
38277         (store_expr): Adjust jumpifnot caller.
38278         (store_constructor): Adjust jumpif caller.
38279
38280         PR middle-end/42233
38281         * gimplify.c (gimple_boolify): For __builtin_expect call
38282         gimple_boolify also on its first argument.
38283
38284 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
38285
38286         * configure.ac (gnu-unique-object): Wrap regexps using [] in
38287         changequote block.
38288         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
38289         * configure: Regenerated.
38290
38291 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
38292
38293         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
38294         lang_hooks.types_compatible_p instead of comptypes.
38295
38296 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
38297
38298         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
38299         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
38300         if __prefer_thumb__ is defined.
38301
38302 2010-02-18  Martin Jambor  <mjambor@suse.cz>
38303
38304         PR tree-optimization/43066
38305         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
38306         array with zero-sized element type.
38307
38308 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
38309
38310         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
38311         rtx, allocate struct var_loc_node here and return it to the
38312         caller, and only if it is actually needed.
38313         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
38314         move it earlier and return immediately if it returns NULL.
38315
38316 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
38317
38318         * config/sparc/gas.h: New file.  Restore
38319         TARGET_ASM_NAMED_SECTION to its ELF default.
38320         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
38321         check !HAVE_GNU_AS.
38322         * config/sparc/sparc.c (sparc_elf_asm_named_section):
38323         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
38324         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
38325         after sparc/sysv4.h.
38326
38327 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
38328
38329         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
38330
38331 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
38332
38333         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
38334         patterns from predicated pattern.
38335
38336 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
38337
38338         PR target/43103
38339         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
38340         for insn mnemonic suffix.
38341
38342 2010-02-17  Richard Guenther  <rguenther@suse.de>
38343
38344         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
38345         to loop PHI nodes.
38346
38347 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
38348
38349         PR debug/42918
38350         * caller-save.c (save_call_clobbered_regs): If BB ends with
38351         a DEBUG_INSN, move any notes in between last real insn and the last
38352         DEBUG_INSN after the last DEBUG_INSN.
38353
38354 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
38355
38356         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
38357         Fix return type.  Fix argument type.  Explain meaning of return value.
38358
38359 2010-02-16  Richard Guenther  <rguenther@suse.de>
38360
38361         PR tree-optimization/41043
38362         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
38363         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
38364         statements ...
38365         (vrp_visit_phi_node): ... but only for loop PHI nodes.
38366
38367 2010-02-16  Ira Rosen  <irar@il.ibm.com>
38368
38369         PR tree-optimization/43074
38370         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
38371         * tree-vect-loop.c (vect_analyze_loop_operations): Add
38372         vectorizable cycles in hybrid SLP check.
38373         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
38374
38375 2010-02-16  Richard Guenther  <rguenther@suse.de>
38376
38377         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
38378         (true_dependence): If memrefs_conflict_p computes must-alias
38379         trust it.  Move TBAA check after offset-based disambiguation.
38380         (canon_true_dependence): Likewise.
38381
38382 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
38383
38384         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
38385         * doc/invoke.texi: Document it.
38386         * var-tracking.c: Include toplev.h and params.h.
38387         (vt_find_locations): Return bool indicating success.  Compute
38388         hash sizes unconditionally.  Check new parameter, report.
38389         (variable_tracking_main_1): Check vt_find_locations results and
38390         retry.  Renamed from...
38391         (variable_tracking_main): ... this.  New wrapper to preserve
38392         flag_var_tracking_assignments.
38393         * Makefile.in (var-tracking.o): Adjust dependencies.
38394
38395 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
38396             Jakub Jelinek  <jakub@redhat.com>
38397
38398         PR target/42854
38399         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
38400         if weak_import attribute is present.
38401         * config/darwin.c (machopic_select_section): Likewise.
38402
38403 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
38404
38405         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
38406         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
38407         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
38408         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
38409
38410         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
38411         types.
38412
38413         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
38414         Fix argument types.
38415
38416         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
38417         Rewrite text to refer to the names.
38418
38419 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
38420
38421         * config/i386/i386-builtin-types.def
38422         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
38423         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
38424         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
38425         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
38426         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
38427         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
38428         IX86_BUILTIN_VPERMIL2PS256.
38429         (MULTI_ARG_4_DF2_DI_I): Defined.
38430         (MULTI_ARG_4_DF2_DI_I1): Defined.
38431         (MULTI_ARG_4_SF2_SI_I): Defined.
38432         (MULTI_ARG_4_SF2_SI_I1): Defined.
38433         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
38434         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
38435         __builtin_ia32_vpermil2ps256.
38436         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
38437         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
38438         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
38439         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
38440         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
38441         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
38442         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
38443         CODE_FOR_xop_vpermil2v8sf3.
38444         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
38445         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
38446         * config/i386/xopintrin.h (_mm_permute2_pd): New.
38447         (_mm256_permute2_pd): New.
38448         (_mm_permute2_ps): New.
38449         (_mm256_permute2_ps): New.
38450
38451 2010-02-15  Nick Clifton  <nickc@redhat.com>
38452
38453         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
38454         boolean parameters.  Use emit_jump_insn when emitting a pop
38455         instruction containing a return insn.
38456         (push): Use 'true' rather than '1' as second parameter to F.
38457         (h8300_expand_prologue): Likewise.
38458         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
38459         (h8300_expand_epilogue): Likewise.
38460
38461 2010-02-15  Richard Guenther  <rguenther@suse.de>
38462
38463         PR middle-end/43068
38464         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
38465         if that is zero.
38466
38467 2010-02-15  Nick Clifton  <nickc@redhat.com>
38468
38469         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
38470         delta.
38471
38472 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
38473
38474         * intl.c (fake_ngettext): New function.
38475         * intl.h (fake_ngettext): Declare.
38476         (ngettext): Define macro.
38477         * collect2.c (notice_translated): New function.
38478         (main): Use notice_translated and ngettext.
38479         * collect2.h (notice_translated): Declare.
38480
38481 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
38482
38483         * reorg.c (delete_computation): Comment fixes.
38484         * caller-save.c (setup_save_areas): Idem.
38485         * sel-sched-dump.c (dump_lv_set): Idem.
38486         * rtl.def: Idem.
38487
38488 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
38489
38490         * config/s390/s390.c (s390_sched_init): New function.
38491         (TARGET_SCHED_INIT): Target hook defined.
38492
38493 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
38494             Jack Howarth  <howarth@bromo.med.uc.edu>
38495             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
38496
38497         PR target/42982
38498         Partial revert of unintended change in fix for PR41605.
38499         * config/darwin.h: Fix typo.
38500         * config/darwin9.h: Same.
38501
38502 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
38503
38504         * c-pch.c (pch_init): Clear v.
38505
38506 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
38507
38508         PR middle-end/42930
38509         * graphite-scop-detection.c (graphite_can_represent_scev): Call
38510         graphite_can_represent_init for MULT_EXPR.
38511
38512 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
38513
38514         PR middle-end/42914
38515         PR middle-end/42530
38516         * graphite-sese-to-poly.c (remove_phi): New.
38517         (translate_scalar_reduction_to_array): Call remove_phi.
38518
38519 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
38520
38521         PR middle-end/42771
38522         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
38523         * graphite-clast-to-gimple.h (gloog): Update declaration.
38524         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
38525         * graphite-poly.h (struct poly_bb): Add missing comments.
38526         (struct scop): Add poly_scop_p field.
38527         (POLY_SCOP_P): New.
38528         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
38529         * graphite.c (graphite_transform_loops): Build the polyhedral
38530         representation for each scop before code generation.
38531         * sese.c (rename_variables_in_operand): Removed.
38532         (rename_variables_in_expr): Return the renamed expression.
38533         (rename_sese_parameters): New.
38534         * sese.h (rename_sese_parameters): Declared.
38535
38536 2010-02-11  Richard Guenther  <rguenther@suse.de>
38537
38538         PR tree-optimization/42998
38539         * tree-ssa-pre.c (create_expression_by_pieces): Treat
38540         POINTER_PLUS_EXPR properly.
38541
38542 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
38543             Changpeng Fang  <changpeng.fang@amd.com>
38544
38545         PR middle-end/40886
38546         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
38547         the cost of an IV candidate when the IV is used in a test against zero.
38548
38549         * gcc.dg/tree-ssa/ivopts-3.c: New.
38550
38551 2010-02-11  Richard Guenther  <rguenther@suse.de>
38552
38553         PR lto/41664
38554         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
38555         pointer-vs-decl case by swapping refs.  Handle some cases
38556         of pointer-vs-decl disambiguations more conservatively.
38557         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
38558         to false after expanding.
38559
38560 2010-02-11  Richard Guenther  <rguenther@suse.de>
38561
38562         PR driver/43021
38563         * gcc.c (process_command): Handle LTO file@offset case more
38564         appropriately.
38565
38566 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
38567
38568         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
38569         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
38570         of DEBUG_INSNs.
38571         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
38572
38573         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
38574         if MEM's mode size isn't DWARF2_ADDR_SIZE.
38575         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
38576         Optimize eq/ne comparisons when both arguments are known to be
38577         zero-extended.
38578         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
38579         Don't mask operands unnecessarily if they are known to be already
38580         zero-extended.
38581
38582 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
38583
38584         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
38585         instead of loop.
38586
38587 2010-02-10  Richard Guenther  <rguenther@suse.de>
38588
38589         PR tree-optimization/43017
38590         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
38591         for wrapping signed arithmetic.
38592
38593 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
38594
38595         PR debug/43010
38596         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
38597         if no debug info should be emitted for it.
38598
38599 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
38600
38601         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
38602         note when flag_exceptions is set.
38603
38604 2010-02-10  Duncan Sands  <baldrick@free.fr>
38605
38606         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
38607
38608 2010-02-10  Richard Guenther  <rguenther@suse.de>
38609
38610         PR c/43007
38611         * tree.c (get_unwidened): Handle constants.
38612         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
38613
38614 2010-02-10  Martin Jambor  <mjambor@suse.cz>
38615
38616         PR lto/42985
38617         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
38618         check for variable argument counts independently.
38619
38620 2010-02-10  Christian Bruel  <christian.bruel@st.com>
38621
38622         PR target/42841
38623         * config/sh/sh.c (find_barrier): Increase length for non delayed
38624         conditional branches.
38625
38626 2010-02-10  Christian Bruel  <christian.bruel@st.com>
38627
38628         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
38629
38630 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
38631
38632         * builtins.c (set_builtin_user_assembler_name): Also handle
38633         ffs if int is smaller than word.
38634
38635 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
38636
38637         PR middle-end/42973
38638         * ira-conflicts.c (get_dup): Remove.
38639         (process_reg_shuffles): Add new parameter.  Use it as an
38640         additional guard for copy generation.
38641         (add_insn_allocno_copies): Rewrite.
38642
38643 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
38644
38645         * common.opt (fsched2-use-traces): Preserved for backward
38646         compatibility.
38647         * doc/invoke.texi: Remove the documentation about option
38648         -fsched2-use-traces.
38649         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
38650         flag_sched2_use_traces.
38651         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
38652         the backward compatibility flag section.
38653
38654 2010-02-09  Richard Guenther  <rguenther@suse.de>
38655
38656         PR tree-optimization/43008
38657         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
38658         make HEAP variables initialized from global memory if they
38659         are not known builtin functions.
38660         (find_func_aliases): Adjust.
38661
38662 2010-02-09  Richard Guenther  <rguenther@suse.de>
38663
38664         PR tree-optimization/43000
38665         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
38666         arithmetic manually.
38667
38668 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
38669
38670         PR tree-optimization/42931
38671         * tree-loop-linear.c (try_interchange_loops): Don't call
38672         double_int_mul if estimated_loop_iterations failed.
38673
38674 2010-02-08  Martin Jambor  <mjambor@suse.cz>
38675
38676         PR middle-end/42898
38677         * tree-sra.c (build_accesses_from_assign): Do not mark in
38678         should_scalarize_away_bitmap if stmt has volatile ops.
38679         (sra_modify_assign): Do not process assigns piecemeal if if stmt
38680         has volatile ops.
38681
38682 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
38683
38684         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
38685
38686 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
38687
38688         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
38689         before the pattern.
38690
38691 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
38692
38693         PR middle-end/42946
38694         * df-core.c (df_finish_pass): Change type of saved_flags to int.
38695
38696 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
38697
38698         PR middle-end/42988
38699         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
38700         to unknown_dependence.
38701         (graphite_legal_transform_dr): Handle the unknown_dependence.
38702         (graphite_carried_dependence_level_k): Same.
38703
38704 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
38705
38706         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
38707
38708 2010-02-07  Richard Guenther  <rguenther@suse.de>
38709
38710         PR middle-end/42991
38711         * expr.c (get_inner_reference): Always initialize *pbitsize.
38712
38713 2010-02-07  Richard Guenther  <rguenther@suse.de>
38714
38715         PR middle-end/42956
38716         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
38717         new ARRAY_REFs on variable size element or minimal index arrays.
38718         Complete.
38719         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
38720         gimple_fold_indirect_ref.
38721
38722 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
38723
38724         PR target/42957
38725         * arm.c (arm_override_options): Just return if the user has specified
38726         an invalid fpu name.
38727
38728 2010-02-03  Jason Merrill  <jason@redhat.com>
38729
38730         PR c++/42870
38731         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
38732         i386_pe_maybe_record_exported_symbol.
38733
38734 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
38735
38736         PR target/42924
38737         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
38738         (pa_delegitimize_address): New function.
38739
38740 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
38741
38742         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
38743         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
38744
38745 2010-02-05  Richard Guenther  <rguenther@suse.de>
38746
38747         PR lto/42762
38748         * lto-streamer-in.c (get_resolution): Deal with references
38749         to undefined functions.
38750
38751 2010-02-05  Richard Guenther  <rguenther@suse.de>
38752
38753         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
38754         (fold_const_aggregate_ref): Likewise.
38755         (ccp_fold_stmt): Substitute loads.
38756         (maybe_fold_reference): Verify types before substituting.
38757         Unshare properly.
38758         (fold_gimple_assign): Unshare properly.
38759         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
38760
38761 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
38762
38763         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
38764         for rs6000_gen_cell_microcode.
38765
38766 2010-02-04  Richard Guenther  <rguenther@suse.de>
38767
38768         PR rtl-optimization/42952
38769         * dse.c (const_or_frame_p): Remove MEM handling.
38770
38771 2010-02-04  Nick Clifton  <nickc@redhat.com>
38772
38773         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
38774         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
38775         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
38776         (mn10300_asm_output_mi_thunk): New function.
38777         (mn10300_can_output_mu_thunk): New function.
38778         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
38779         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
38780         (FUNCTION_ARG): Delete incorrect comment.
38781
38782 2010-02-03  Jason Merrill  <jason@redhat.com>
38783
38784         PR c++/40138
38785         * fold-const.c (operand_equal_p): Handle erroneous types.
38786
38787 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
38788
38789         * config/h8300/h8300.md (can_delay): Fix attibute condition.
38790
38791 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
38792
38793         PR rtl-optimization/42941
38794         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
38795         of xmalloc.
38796
38797 2010-02-03  Jason Merrill  <jason@redhat.com>
38798
38799         PR c++/35652
38800         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
38801
38802 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
38803
38804         PR debug/42896
38805         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
38806         (cselib_reset_table): Renamed from...
38807         (cselib_reset_table_with_next_value): ... this.
38808         (cselib_get_next_uid): Renamed from...
38809         (cselib_get_next_unknown_value): ... this.
38810         * cselib.c (next_uid): Renamed from...
38811         (next_unknown_value): ... this.
38812         (cselib_clear_table): Adjust.
38813         (cselib_reset_table): Adjust.  Renamed from...
38814         (cselib_reset_table_with_next_value): ... this.
38815         (cselib_get_next_uid): Adjust.  Renamed from...
38816         (cselib_get_next_unknown_value): ... this.
38817         (get_value_hash): Use hash.
38818         (cselib_hash_rtx): Likewise.
38819         (new_cselib_val): Adjust.  Set and dump uid.
38820         (cselib_lookup_mem): Pass next_uid as hash.
38821         (cselib_subst_to_values): Likewise.
38822         (cselib_log_lookup): Dump uid.
38823         (cselib_lookup): Pass next_uid as hash.  Adjust.
38824         (cselib_process_insn): Adjust.
38825         (cselib_init): Initialize next_uid.
38826         (cselib_finish): Adjust.
38827         (dump_cselib_table): Likewise.
38828         * dse.c (canon_address): Dump value uid.
38829         * print-rtl.c (print_rtx): Print value uid.
38830         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
38831         (dvuid): New type.
38832         (dv_uid): New function, sort of renamed from...
38833         (dv_htab_hash): ... this, reimplemented in terms of it and...
38834         (dv_uid2hash): ... this.  New.
38835         (variable_htab_eq): Drop excess assertions.
38836         (tie_break_pointers): Removed.
38837         (canon_value_cmp): Compare uids.
38838         (variable_post_merge_New_vals): Print uids.
38839         (vt_add_function_parameters): Adjust.
38840         (vt_initialize): Reset table.  Adjust.
38841
38842 2010-02-03  Richard Guenther  <rguenther@suse.de>
38843
38844         PR tree-optimization/42944
38845         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
38846         (call_may_clobber_ref_p_1): Likewise.  Properly handle
38847         malloc and calloc clobbering errno.
38848
38849 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
38850
38851         * doc/invoke.texi: Fix name of sched1 dump.
38852
38853         * opts.c (decode_options): Set flag_tree_switch_conversion
38854         only conditionally on optimize >= 2.
38855
38856         * gcse.c: Assorted comment fixes in pass description.
38857
38858 2010-02-03  Anthony Green  <green@moxielogic.com>
38859
38860         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
38861         nop padding in order to maintain alignment of storage location of
38862         target function address.
38863         (moxie_trampoline_init): Store target function address at newly
38864         aligned location.
38865         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
38866         to 32.
38867         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
38868
38869 2010-02-03  Richard Guenther  <rguenther@suse.de>
38870
38871         PR middle-end/42927
38872         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
38873
38874 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38875
38876         * config.gcc: Reenable check for obsolete targets.
38877         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
38878         mips-sgi-irix6.[0-4]*.
38879
38880 2010-02-02  Nick Clifton  <nickc@redhat.com>
38881
38882         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
38883         constant size of 4 as being the same as 0.
38884         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
38885         can take values in the range 0..4.
38886
38887 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
38888
38889         PR java/41991
38890         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
38891         as _darwin10_Unwind_FindEnclosingFunction().
38892         * libgcc-libsystem.ver: New.
38893
38894 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
38895
38896         PR target/41399
38897         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
38898         implicitly set registers.
38899
38900 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
38901
38902         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
38903         (arm_override_options): Allow automatic selection of the thread
38904         pointer register if thumb2.
38905         (legitimize_pic_address): Improve code sequences for Thumb2.
38906         (arm_call_tls_get_addr): Likewise.
38907         (legitimize_tls_address): Likewise.
38908         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
38909         (pic_load_addr_32bit): ... this.  New named pattern.
38910         * thumb2.md (pic_load_addr_thumb2): Delete.
38911         (pic_load_dot_plus_four): Delete.
38912         (tls_load_dot_plus_four): New named pattern.
38913
38914 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38915
38916         PR libgomp/29986
38917         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
38918         Document fix for TLS bug.
38919
38920 2010-01-31  Richard Guenther  <rguenther@suse.de>
38921
38922         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
38923         conservatively correct.
38924
38925 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
38926
38927         PR target/42850
38928         Revert:
38929         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
38930
38931         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
38932
38933 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
38934
38935         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
38936
38937 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
38938
38939         * config.gcc: Adjust order of makefile fragments for mingw targets.
38940
38941 2010-01-31  Richard Guenther  <rguenther@suse.de>
38942
38943         PR middle-end/42898
38944         * gimplify.c (gimplify_init_constructor): For volatile LHS
38945         initialize a temporary.
38946
38947 2010-01-31  Matthias Klose  <doko@ubuntu.com>
38948
38949         * configure.ac: Fix __stack_chk_fail check for cross builds configured
38950         --with-headers
38951         * configure: Regenerate.
38952
38953 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
38954
38955         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
38956         the same alias set and their sizes different constantness.
38957         (aliasing_component_refs_p): Revert 2009-10-24 change.
38958
38959 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38960
38961         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
38962         unused.
38963
38964 2010-01-29  Richard Guenther  <rguenther@suse.de>
38965
38966         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
38967         Assert we successfully updated the call.
38968
38969 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
38970
38971         PR rtl-optimization/42889
38972         * df.h (df_set_bb_dirty_nonlr): New prototype.
38973         * df-core.c (df_set_bb_dirty_nonlr): New function.
38974         * df-scan.c (df_insn_rescan): Call it instead of
38975         df_set_bb_dirty for DEBUG_INSNs.
38976
38977 2010-01-29  Richard Guenther  <rguenther@suse.de>
38978
38979         PR middle-end/37448
38980         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
38981         quadratic behavior in most cases.
38982
38983 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
38984
38985         PR target/42891
38986         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
38987         in the call to gen_x86_movsicc_0_m1.
38988
38989 2010-01-28  Richard Guenther  <rguenther@suse.de>
38990
38991         PR tree-optimization/42871
38992         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
38993
38994 2010-01-28  Richard Guenther  <rguenther@suse.de>
38995
38996         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
38997         into call arguments.
38998
38999 2010-01-28  Richard Guenther  <rguenther@suse.de>
39000
39001         PR middle-end/42883
39002         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
39003         the forwarder if the destination is an EH landing pad.
39004
39005 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
39006
39007         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
39008         block list passed to gimple_duplicate_sese_tail.
39009         (parallelize_loops): Avoid parallelization when the function
39010         has_nonlocal_label.
39011         Avoid parallelization when the preheader is IRREDUCIBLE.
39012         Try to optimize when estimated_loop_iterations_int is unresolved.
39013         Add the loop's location to the dump file.
39014         * tree-cfg.c (add_phi_args_after_redirect): Remove.
39015         (gimple_duplicate_sese_tail): Remove the check for the latch.
39016         Redirect nexits to the exit block.
39017         Remove handling of the incoming edges to the latch.
39018         Redirect the backedge from the copied latch to the exit bb.
39019
39020 2010-01-28  Michael Matz  <matz@suse.de>
39021
39022         PR target/42881
39023         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
39024         Wrap force_reg into a sequence, emit it before user.
39025
39026 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
39027
39028         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
39029         (arm_rev): New.
39030         (arm_legacy_rev): Likewise.
39031         (thumb_legacy_rev): Likewise.
39032
39033 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
39034
39035         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
39036         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
39037         on MEM's address failed, try avoid_constant_pool_reference and
39038         recurse if it returned something different.
39039         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
39040         address, try avoid_constant_pool_reference and recurse if it
39041         returned something different.
39042         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
39043         address and avoid_constant_pool_reference returned something
39044         different, don't set have_address.
39045
39046 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
39047
39048         PR debug/42861
39049         * var-tracking.c (val_store): Add modified argument, obey it.
39050         Adjust callers.
39051         (count_uses): Move down logging of main.
39052         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
39053         don't need resolution.
39054         (emit_notes_in_bb): Likewise.
39055
39056 2010-01-27  Richard Guenther  <rguenther@suse.de>
39057
39058         PR middle-end/42878
39059         * tree-inline.c (remap_decl): Delay remapping of SSA name
39060         default definitions until we need them.
39061
39062 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
39063
39064         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
39065         (rs6000_delegitimize_address): New function.
39066
39067         * config/s390/s390.c (s390_delegitimize_address): Call
39068         delegitimize_mem_from_attrs.
39069
39070         PR middle-end/42874
39071         * tree-inline.c (cannot_copy_type_1): Removed.
39072         (copy_forbidden): Don't forbid copying of functions containing
39073         records/unions with variable length fields.
39074
39075 2010-01-27  Christian Bruel  <christian.bruel@st.com>
39076
39077         Revert:
39078         PR target/42841
39079         * config/sh/sh.c (find_barrier): Increase length for non delayed
39080         conditional branches.
39081
39082 2010-01-27  Matthias Klose  <doko@ubuntu.com>
39083
39084         * configure.ac (gnu-unique-object): Fix ldd version check.
39085         * configure: Regenerate.
39086
39087 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39088
39089         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
39090         HAVE_GNU_AS value.
39091         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
39092         Test for HAVE_GNU_AS value.
39093
39094 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39095
39096         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
39097         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
39098         INT64_TYPE): Define.
39099         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
39100         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
39101         INT_LEAST64_TYPE): Define.
39102         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
39103         UINT_LEAST64_TYPE): Define.
39104         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
39105         INT_FAST64_TYPE): Define.
39106         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
39107         UINT_FAST64_TYPE): Define.
39108         (INTMAX_TYPE, UINTMAX_TYPE): Define.
39109         (INTPTR_TYPE, UINTPTR_TYPE): Define.
39110         (SIG_ATOMIC_TYPE): Define.
39111
39112 2010-01-26  Richard Guenther  <rguenther@suse.de>
39113
39114         * df-scan.c (df_scan_set_bb_info): Remove assert.
39115         (df_insn_rescan_debug_internal): Merge asserts.
39116         (df_install_ref): Likewise.
39117         (df_mark_reg): Use bitmap_set_range.
39118         (df_hard_reg_used_p): Remove assert.
39119         (df_hard_reg_used_count): Likewise.
39120
39121 2010-01-26  Richard Guenther  <rguenther@suse.de>
39122
39123         PR rtl-optimization/42685
39124         * web.c (web_main): Ignore DEBUG_INSNs.
39125
39126 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
39127
39128         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
39129
39130         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
39131         Fix types of fndecl and arglist parameters.
39132
39133 2010-01-26  Richard Guenther  <rguenther@suse.de>
39134
39135         PR middle-end/42806
39136         * tree-eh.c (unsplit_eh): Skip debug insns.
39137
39138 2010-01-26  Richard Guenther  <rguenther@suse.de>
39139
39140         PR tree-optimization/42250
39141         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
39142
39143 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
39144
39145         PR fortran/42866
39146         * omp-low.c (expand_omp_sections): Only use single_pred if
39147         l2_bb is single_pred_p.
39148
39149 2010-01-25  Christian Bruel  <christian.bruel@st.com>
39150
39151         PR target/42841
39152         * config/sh/sh.c (find_barrier): Increase length for non delayed
39153         conditional branches.
39154         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
39155
39156 2010-01-24  David S. Miller  <davem@davemloft.net>
39157
39158         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
39159         define if not using GAS.
39160         * config/sparc/sparc.c (sparc_elf_asm_named_section):
39161         Likewise.  Delete SECTION_MERGE code, which is only applicable
39162         when using GAS.
39163
39164 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
39165
39166         PR c++/42748
39167         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
39168         mangling of va_list in system headers.
39169
39170 2010-01-23  Toon Moene  <toon@moene.org>
39171
39172         * tree-predcom.c (combine_chains): Return NULL, not false.
39173
39174 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
39175
39176         * tree-loop-distribution.c (distribute_loop): Fix declaration and
39177         initialization of variable res to agree with return type.
39178
39179 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
39180
39181         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
39182         * tree-sra.c: Add include of expr.h.
39183
39184 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
39185
39186         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
39187         insert the debug stmt on the single non-EH edge from the stmt.
39188
39189 2010-01-22  Richard Henderson  <rth@redhat.com>
39190
39191         PR tree-opt/42833
39192         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
39193         the RHS until after generate_subtree_copies has insertted its
39194         code before the current statement.
39195
39196 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
39197
39198         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
39199
39200         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
39201
39202 2010-01-21  Martin Jambor  <mjambor@suse.cz>
39203
39204         PR tree-optimization/42585
39205         * tree-sra.c (struct access): New field grp_total_scalarization.
39206         (dump_access): Dump the new field.
39207         (should_scalarize_away_bitmap): New variable.
39208         (cannot_scalarize_away_bitmap): Likewise.
39209         (sra_initialize): Allocate new bitmaps.
39210         (sra_deinitialize): Free new bitmaps.
39211         (create_access_1): New function.
39212         (create_access): Parts moved to create_access_1.
39213         (type_consists_of_records_p): New function.
39214         (completely_scalarize_record): Likewise.
39215         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
39216         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
39217         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
39218         access.
39219         (analyze_all_variable_accesses): Completely scalarize small eligible
39220         records.
39221
39222 2010-01-21  Martin Jambor  <mjambor@suse.cz>
39223
39224         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
39225
39226 2010-01-21  Andrew Haley  <aph@redhat.com>
39227
39228         * gcc.c (process_command): Move lang_specific_driver before
39229         setting cc_libexec_prefix.
39230
39231 2010-01-21  Richard Guenther  <rguenther@suse.de>
39232
39233         PR middle-end/19988
39234         * fold-const.c (negate_expr_p): Pretend only negative
39235         real constants are easily negatable.
39236
39237 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
39238             Jason Merrill  <jason@redhat.com>
39239
39240         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
39241         (TYPE_TRANSPARENT_AGGR): this, for union and record.
39242         * calls.c (initialize argument_information): Handle it.
39243         * c-common.c (handle_transparent_union_attribute): Use new name.
39244         * c-decl.c (finish_struct): Ditto.
39245         * c-typeck.c (type_lists_compatible_p): Ditto.
39246         (convert_for_assignment): Use new name and also handle record.
39247         * function.c (aggregate_value_p): Handle it.
39248         (pass_by_reference): Ditto.
39249         (assign_parm_data_types): Ditto.
39250         * print-tree.c (print_node): Ditto.
39251         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
39252         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
39253         * tree.c (first_field): New fn.
39254
39255 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
39256
39257         PR target/42818
39258         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
39259         even when linking statically, for now.
39260
39261 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
39262
39263         PR debug/42715
39264         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
39265         without a cselib val.
39266         (count_uses): Accept MO_VAL_SET with no val on stores.
39267         (add_stores): Likewise.
39268
39269 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
39270
39271         * var-tracking.c (check_value_val): Add a compile time assertion.
39272         (dv_is_decl_p): Simplify.
39273         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
39274         gcc_assert if ENABLE_CHECKING.
39275
39276 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
39277
39278         PR debug/42782
39279         * var-tracking.c: Include tree-flow.h.
39280         (mem_dies_at_call): New.
39281         (dataflow_set_preserve_mem_locs): Use it.
39282         (dataflow_set_remove_mem_locs): Likewise.
39283         (dump_var): Renamed from dump_variable.  Adjust all callers.
39284         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
39285         * Makefile.in (var-tracking.o): Adjust deps.
39286
39287 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
39288
39289         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
39290
39291 2010-01-20  Richard Guenther  <rguenther@suse.de>
39292
39293         PR tree-optimization/42717
39294         * tree-ssa-dce.c (get_live_post_dom): Remove.
39295         (forward_edge_to_pdom): Take an arbitrary edge to copy
39296         degenerate PHI args from.
39297         (remove_dead_stmt): Use the first post-dominator even if it
39298         does not contain live statements as redirection destination.
39299
39300 2010-01-20  Richard Guenther  <rguenther@suse.de>
39301
39302         * tree-inline.c (estimate_num_insns): Handle EH builtins.
39303
39304 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
39305
39306         * sel-sched.c (create_speculation_check): Remove set but not used
39307         variable twin.
39308         (try_transformation_cache): Remove set but not used variable ds.
39309         (calculate_privileged_insns): Remove set but not used variables
39310         cur_insn and min_spec_insn.
39311         (find_best_expr): Remove set but not used variable avail_n.
39312         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
39313         variable e.
39314         * cgraphunit.c (assemble_thunk): Remove set but not used variable
39315         false_label.
39316         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
39317         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
39318         new_scop_exit_edge.
39319
39320 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
39321
39322         PR bootstrap/42786
39323         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
39324         cpu types.  Add support for *-sse3 cpu types.
39325         (x86_64-*-*): Ditto.
39326
39327 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
39328
39329         PR middle-end/42803
39330         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
39331         argument, call initializer_constant_valid_p_1 instead of
39332         initializer_constant_valid_p, pass CACHE to it, return NULL
39333         immediately if first call returns NULL.
39334         (initializer_constant_valid_p_1): New function.
39335         (initializer_constant_valid_p): Use it.
39336
39337 2010-01-20  Thomas Quinot  <quinot@adacore.com>
39338
39339         * tree.def (PLACEHOLDER_EXPR): Fix comment.
39340
39341 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
39342
39343         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
39344         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
39345         (loc_list_from_tree): Don't handle unsigned division.  Handle
39346         signed modulo using DW_OP_{over,over,div,mul,minus}.
39347         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
39348         modulo instead of signed.
39349
39350 2010-01-20  DJ Delorie  <dj@redhat.com>
39351
39352         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
39353         (Fpa): Pass it
39354         (h8300_emit_stack_adjustment): Propogate it.
39355         (push): Pass it.
39356         (h8300_expand_prologue): Likewise.
39357         (h8300_expand_epilogue): Likewise.
39358
39359 2010-01-19  Michael Matz  <matz@suse.de>
39360
39361         PR tree-optimization/41783
39362         * tree-data-ref.c (toplevel): Include flags.h.
39363         (dump_data_dependence_relation):  Also dump the inputs if the
39364         result will be unknown.
39365         (split_constant_offset_1): Look through some conversions.
39366         * tree-predcom.c (determine_roots_comp): Restart a new chain if
39367         the offset from last element is too large.
39368         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
39369         (reassociate_to_the_same_stmt): Handle vector registers.
39370         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
39371         (e.g. conversions).
39372         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
39373         wide_prolog_niters argument, emit widening instructions.
39374         (vect_do_peeling_for_alignment): Adjust caller, use widened
39375         variant of the iteration cound.
39376         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
39377
39378 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
39379
39380         PR target/38697
39381         * config/arm/neon-testgen.m (emit_automatics): New parameter
39382         features. Adjust for Fixed_return_reg feature.
39383         (test_intrinsic): Call emit_automatics with new feature.
39384         * config/arm/neon.ml: Update copyright years.
39385         (features): New Fixed_return_reg feature.
39386         (ops): Update feature for Vget_low.
39387
39388 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
39389
39390         PR tree-optimization/42719
39391         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
39392         stmt uses.
39393
39394         PR debug/42728
39395         * fwprop.c (all_uses_available_at): Return false if def_set dest
39396         is a REG that is used in def_insn.
39397
39398 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
39399
39400         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
39401
39402         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
39403         Add argument names.
39404
39405         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
39406
39407         * target.h (struct gcc_target) <secondary_reload>: Change type
39408         of last argument to secondary_reload_info *.
39409
39410 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
39411
39412         PR target/42774
39413         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
39414         memory references with unaligned offsets.  Remove CQImode handling.
39415         (unaligned_memory_operand): Return 1 for memory references with
39416         unaligned offsets.  Remove CQImode handling.
39417
39418 2010-01-18  Richard Guenther  <rguenther@suse.de>
39419
39420         PR middle-end/39954
39421         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
39422         builtin calls.
39423
39424 2010-01-18  Richard Guenther  <rguenther@suse.de>
39425
39426         PR tree-optimization/42781
39427         * tree-ssa-structalias.c (find_what_var_points_to): Skip
39428         restrict processing only if the original variable was artificial.
39429
39430 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
39431
39432         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
39433         find number of popped argument bytes.
39434
39435         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
39436         Fix the text that describes the return value for invalid insns.
39437
39438         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
39439
39440         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
39441         Clarify what 'cost of the -dependence' is.  Fix quoting.
39442
39443         * toplev.c (default_get_pch_validity): Rename argument to "sz".
39444         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
39445
39446 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
39447
39448         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
39449         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
39450
39451 2010-01-17  Richard Guenther  <rguenther@suse.de>
39452
39453         PR middle-end/42248
39454         * function.c (split_complex_args): Take a VEC to modify.
39455         (assign_parms_augmented_arg_list): Build a VEC instead of
39456         a chain of PARM_DECLs.
39457         (assign_parms_unsplit_complex): Take a VEC of arguments.
39458         Do not fixup unmodified parms.
39459         (assign_parms): Deal with the VEC.
39460         (gimplify_parameters): Likewise.
39461
39462 2010-01-17  Richard Guenther  <rguenther@suse.de>
39463
39464         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
39465         node existence check.
39466         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
39467         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
39468         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
39469         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
39470         (gimple_execute_on_growing_pred): Likewise.
39471
39472 2010-01-17  Richard Guenther  <rguenther@suse.de>
39473
39474         PR tree-optimization/42773
39475         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
39476         (compute_antic_aux): Likewise.
39477         (compute_partial_antic_aux): Likewise.
39478
39479 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
39480
39481         PR debug/42767
39482         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
39483         and US_TRUNCATE.
39484
39485 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
39486
39487         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
39488         appearance.
39489
39490         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
39491         Fix markup for strict argument.
39492
39493         (TARGET_SCHED_REORDER2): Fix argument types.
39494
39495         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
39496         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
39497
39498         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
39499         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
39500
39501         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
39502         Add argument name.
39503
39504         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
39505         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
39506         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
39507         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
39508         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
39509
39510         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
39511
39512         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
39513
39514         (TARGET_ASM_RELOC_RW_MASK): Add return type.
39515         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
39516
39517         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
39518
39519         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
39520         Use prototype.
39521
39522         (TARGET_ASM_NAMED_SECTION): Fix argument list.
39523
39524         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
39525         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
39526
39527         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
39528
39529         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
39530
39531         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
39532         referring to it.  Fix language.
39533
39534         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
39535
39536         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
39537
39538         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
39539
39540         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
39541
39542         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
39543         '@var{stream}.  Remove stray 'and'.
39544
39545         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
39546
39547         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
39548
39549         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
39550
39551         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
39552         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
39553
39554         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
39555         Fix description of return value.
39556         Rename argument "sz" to "len."
39557
39558         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
39559         Clarify meaning of 'true' return value.
39560
39561         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
39562
39563         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
39564         rep_mode versus mode_rep.
39565
39566         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
39567
39568         (TARGET_BUILTIN_DECL): Fix name.
39569
39570         (TARGET_COMMUTATIVE_P): Fix type of first argument.
39571
39572         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
39573
39574         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
39575
39576         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
39577
39578         (TARGET_RELAXED_ORDERING): Use @deftypevr.
39579
39580         (TARGET_GET_DRAP_RTX): Note that this is a hook.
39581         Clarify language.
39582
39583         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
39584         Rename argument tm_fn to md_fn.
39585
39586         (TARGET_OPTION_PRINT): Fix argument list.
39587
39588 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
39589
39590         PR target/42664
39591         * config/i386/i386.c (ix86_fixup_binary_operands):
39592         Revert FMA4 fixup of operands.
39593
39594 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
39595
39596         PR other/42525
39597         * Makefile.in (write_entries_to_file, install-plugin):
39598         Use \012 instead of \n with tr.
39599
39600 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
39601
39602         * configure.ac (HAVE_AS_REF): New C macro.
39603         * configure: Regenerate.
39604         * config.in: Likewise.
39605         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
39606         if HAVE_AS_REF.
39607         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
39608         if HAVE_AS_REF.
39609
39610 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
39611
39612         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
39613
39614         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
39615
39616         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
39617
39618         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
39619
39620         (TARGET_IN_SMALL_DATA_P): Fix argument type.
39621
39622         (TARGET_BINDS_LOCAL_P): Fix argument type.
39623
39624         (TARGET_ASM_FILE_END): Use prototype.
39625
39626         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
39627
39628         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
39629
39630         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
39631
39632         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
39633
39634         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
39635         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
39636
39637         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
39638         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
39639
39640         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
39641         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
39642         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
39643         (TARGET_ADDR_SPACE_CONVERT): Likewise.
39644
39645         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
39646
39647         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
39648
39649         (TARGET_INIT_BUILTINS): Use prototype.
39650
39651         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
39652         Put 'const char *' in braces.  Fix parameter types.
39653         (TARGET_INVALID_CONVERSION): Fix parameter types.
39654         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
39655         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
39656
39657         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
39658         Fix argument type.
39659
39660         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
39661
39662         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
39663
39664 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
39665
39666         * doc/tm.texi (TARGET_HELP): Fix return type.
39667
39668         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
39669         in braces.  Fix argument types.
39670
39671         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
39672
39673         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
39674
39675         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
39676
39677         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
39678         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
39679
39680         (TARGET_MANGLE_TYPE): Fix argument types.
39681
39682         (TARGET_IRA_COVER_CLASSES): Use prototype.
39683
39684         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
39685
39686         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
39687
39688         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
39689
39690         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
39691
39692         (TARGET_CALLEE_COPIES): Fix argument types.
39693
39694         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
39695
39696         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
39697
39698         (TARGET_FUNCTION_VALUE): Fix argument types.
39699
39700         (TARGET_RETURN_IN_MSB): Fix argument type.
39701
39702         (TARGET_RETURN_IN_MEMORY): Fix argument types.
39703
39704         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
39705
39706         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
39707
39708         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
39709         agree with return type.
39710
39711         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
39712
39713 2010-01-15  Jing Yu  <jingyu@google.com>
39714
39715         PR rtl-optimization/42691
39716         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
39717         a pseudo to a constant and are merged, and adjust comments.
39718
39719 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
39720
39721         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
39722
39723 2010-01-15  Richard Guenther  <rguenther@suse.de>
39724
39725         PR middle-end/42739
39726         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
39727         labels of computed or non-local gotos to the destination.
39728         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
39729         landing pad label is the first label.
39730
39731 2010-01-15  Richard Guenther  <rguenther@suse.de>
39732
39733         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
39734
39735 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
39736
39737         PR target/42747
39738         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
39739         to allow generation of the xssqrtdp instruction on power7.
39740         (sqrtdf2_fpr): Ditto.
39741
39742 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
39743
39744         PR middle-end/42674
39745         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
39746         functions with noreturn attribute.
39747
39748         PR c++/42608
39749         * varasm.c (declare_weak): Add weak attribute to decl if it
39750         doesn't have one already.
39751         (assemble_external): Only add decls to weak_decls if they also
39752         have weak attribute.
39753
39754 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
39755
39756         * var-tracking.c (var_reg_delete): Don't delete the association
39757         between REGs and values or one-part variables if the register
39758         isn't clobbered.
39759
39760 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
39761
39762         PR debug/42657
39763         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
39764         because its first operand is a non-localized variable.
39765
39766 2010-01-14  Martin Jambor  <mjambor@suse.cz>
39767
39768         PR tree-optimization/42706
39769         * tree-sra.c (encountered_recursive_call): New variable.
39770         (encountered_unchangable_recursive_call): Likewise.
39771         (sra_initialize): Initialize both new variables.
39772         (callsite_has_enough_arguments_p): New function.
39773         (scan_function): Call decl and flags check only for IPA-SRA, check
39774         whether there is a recursive call and whether it has enough arguments.
39775         (all_callers_have_enough_arguments_p): New function.
39776         (convert_callers): Look for recursive calls only when
39777         encountered_recursive_call is set.
39778         (ipa_early_sra): Bail out either if
39779         !all_callers_have_enough_arguments_p or
39780         encountered_unchangable_recursive_call.
39781
39782 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39783
39784         * sel-sched.c: Add 2010 to copyright years.
39785         * sel-sched-ir.c: Likewise.
39786         * sel-sched-ir.h: Likewise.
39787
39788 2010-01-14  Martin Jambor  <mjambor@suse.cz>
39789
39790         PR tree-optimization/42714
39791         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
39792         constructors specially.
39793
39794 2010-01-14  Andi Kleen  <ak@linux.intel.com>
39795
39796         * config/i386/drivers-i386.c (detect_caches_intel):
39797         Add l2sizekb parameter and fill in.
39798         (host_detect_local_cpu): Add l2sizekb, fill in.
39799         Add Atom small cache heuristic.
39800
39801 2010-01-14  Andi Kleen  <ak@linux.intel.com>
39802
39803         * config/i386/drivers-i386.c (detect_caches_cpuid4):
39804         Add level3 parameter and fill in.
39805         (detect_caches_intel): Handle level3 cache.
39806
39807 2010-01-14  Andi Kleen  <ak@linux.intel.com>
39808
39809         * config/i386/drivers-i386.c (host_detect_local_cpu):
39810         Fix core duo detection.
39811
39812 2010-01-14  Andi Kleen  <ak@linux.intel.com>
39813
39814         * config/i386/drivers-i386.c (host_detect_local_cpu):
39815         Fix Atom detection.
39816
39817 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39818
39819         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
39820         (rs6000_variable_issue_1): this.  Use...
39821         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
39822
39823 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39824
39825         * sel-sched-ir.c (sel_restore_other_notes): Rename to
39826         sel_restore_notes.  Update all callers.  Call reemit_notes
39827         for all insns.
39828
39829 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39830
39831         PR rtl-optimization/42246
39832         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
39833         loops.
39834
39835 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39836
39837         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
39838         all successors is the same as number of successors in current region.
39839
39840 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39841
39842         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
39843         to rename is not separable.  Otherwise check that its LHS is not NULL.
39844
39845 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39846
39847         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
39848
39849 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39850
39851         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
39852         available registers when failed to discover LHS register class.
39853         Fix indentation.  Update comment.
39854
39855 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39856             Alexander Monakov  <amonakov@ispras.ru>
39857
39858         PR rtl-optimization/42389
39859         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
39860         to can_issue_more.
39861         (advance_state_on_fence): Likewise.
39862         (sel_target_adjust_priority): Print debug output only when
39863         sched_verbose >= 4, not 2.
39864         (get_expr_cost): Do not issue all unique insns on the next cycle.
39865         (fill_insns): Initialize can_issue_more from the value saved
39866         with the fence.
39867         * sel-sched-ir.c (flist_add): New parameter issue_more.
39868         Init FENCE_ISSUE_MORE with it.
39869         (merge_fences): Likewise.
39870         (init_fences): Update call to flist_add.
39871         (add_to_fences, add_clean_fence_to_fences)
39872         (add_dirty_fence_to_fences): Likewise.
39873         (move_fence_to_fences): Update call to merge_fences.
39874         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
39875         sched groups.
39876         * sel-sched-ir.h (struct _fence): New field issue_more.
39877         (FENCE_ISSUE_MORE): New accessor macro.
39878
39879 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39880
39881         PR rtl-optimization/42388
39882         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
39883         that have no predecessors nor successors.  Do not call move_bb_info
39884         for empty blocks outside of current region.
39885
39886 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39887
39888         PR rtl-optimization/42294
39889         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
39890         * sel-sched.c (move_exprs_to_boundary): Transitively add all
39891         originators' originators.
39892
39893 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39894
39895         PR rtl-optimization/39453
39896         PR rtl-optimization/42246
39897         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
39898         for pipelining_p.
39899         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
39900
39901 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39902             Alexander Monakov  <amonakov@ispras.ru>
39903
39904         PR middle-end/42245
39905         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
39906         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
39907         argument.  Update all callers.
39908         (tidy_control_flow): ... and here.  Recompute topological order
39909         of basic blocks in region if necessary.
39910         (sel_redirect_edge_and_branch): Change return type.  Return true
39911         if topological order might have been invalidated.
39912         (purge_empty_blocks): Export and move from...
39913         * sel-sched.c (purge_empty_blocks): ... here.
39914         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
39915         (maybe_tidy_empty_bb): Delete prototype.
39916         (purge_empty_blocks): Declare.
39917
39918 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39919
39920         PR rtl-optimization/42249
39921         * sel-sched.c (try_replace_dest_reg): When chosen register
39922         and original register is the same, do not bail out early, but
39923         still check all original insns for validity of replacing destination
39924         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
39925         in this case.
39926
39927 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
39928
39929         PR c/42721
39930         Port from no-undefined-overflow branch:
39931         2009-03-09  Richard Guenther  <rguenther@suse.de>
39932
39933         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
39934
39935 2010-01-14  Richard Guenther  <rguenther@suse.de>
39936
39937         PR lto/42665
39938         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
39939
39940 2010-01-14  Ira Rosen  <irar@il.ibm.com>
39941
39942         PR tree-optimization/42709
39943         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
39944         as scalar type in creation of constant vector operand.
39945
39946 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
39947
39948         PR testsuite/42414
39949         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
39950         (check-parallel-%): Match `testsuite' directory component only
39951         at the end.
39952
39953 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
39954
39955         PR translation/39521
39956         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
39957         strings with _().
39958
39959 2010-01-13  Richard Guenther  <rguenther@suse.de>
39960
39961         PR tree-optimization/42730
39962         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
39963         offset zero.
39964
39965 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
39966
39967         PR target/pr42542
39968         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
39969         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
39970         them signed.
39971
39972 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
39973
39974         * config/bfin/libgcc-bfin.ver: Regenerate based on current
39975         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
39976         ___umulsi3_highpart.
39977
39978         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
39979         rather than schedule_insns if the pass is enabled.
39980
39981 2010-01-13  Martin Jambor  <mjambor@suse.cz>
39982
39983         PR tree-optimization/42704
39984         * tree-sra.c (sra_modify_assign): Do not delete assignments to
39985         SSA_NAMEs.
39986
39987 2010-01-13  Martin Jambor  <mjambor@suse.cz>
39988
39989         PR tree-optimization/42703
39990         * tree-sra.c (analyze_access_subtree): Check that we can build a
39991         reference to the original data within the aggregate.
39992
39993 2010-01-13  Richard Guenther  <rguenther@suse.de>
39994
39995         PR tree-optimization/42705
39996         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
39997
39998 2010-01-13  Richard Guenther  <rguenther@suse.de>
39999
40000         PR middle-end/42716
40001         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
40002
40003 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
40004
40005         PR debug/41371
40006         * var-tracking.c (values_to_unmark): New variable.
40007         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
40008         values_to_unmark vector.  Moved body to...
40009         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
40010         instead queue it into values_to_unmark vector.
40011         (vt_find_locations): Free values_to_unmark vector.
40012
40013 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
40014
40015         * config/s390/s390.c (override_options): Set
40016         default of max-pending-list-length to 256
40017
40018 2010-01-13  Richard Guenther  <rguenther@suse.de>
40019
40020         PR lto/42678
40021         * tree-pass.h (PROP_gimple_lcx): New.
40022         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
40023         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
40024         before the final cleanup_eh.
40025         (dump_properties): Dump PROP_gimple_lcx.
40026         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
40027         (tree_lower_complex_O0): Remove.
40028         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
40029         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
40030         tree_lower_complex, schedule TODO_update_ssa.
40031         * lto-streamer-out.c (output_function): Stream the functions
40032         properties.
40033         * lto-streamer-in.c (input_function): Likewise.
40034         (lto_read_body): Do not override them here.
40035
40036 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
40037
40038         PR c/42708
40039         * c-typeck.c (build_c_cast): Fold value cast to union type before
40040         wrapping it in a CONSTRUCTOR.
40041
40042 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
40043
40044         PR rtl-optimization/42699
40045         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
40046         involved.
40047
40048 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
40049
40050         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
40051         SUBTARGET_WARN_UNUSED_SPEC): Move ...
40052         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
40053         SUBTARGET_WARN_UNUSED_SPEC): ... here
40054         * config/mips/iris5.h (LIBGCC_SPEC): Define.
40055
40056 2010-01-12  Julian Brown  <julian@codesourcery.com>
40057
40058         * config/arm/neon-schedgen.ml (Utils): Don't try to
40059         open missing module.
40060         (find_with_result): New.
40061
40062 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
40063
40064         PR debug/42662
40065         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
40066         sharing when canonicalizing ({lt,ge}u (plus a b) b).
40067
40068         PR tree-optimization/42645
40069         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
40070         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
40071         decl_map, set processing_debug_stmt to -1 and return name without
40072         any remapping.
40073
40074 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
40075
40076         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
40077         binutils version, and reword target configuration description.
40078
40079 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
40080
40081         * config/avr/avr.h (LINKER_NAME): Remove.
40082
40083 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
40084
40085         PR target/42416
40086         * config/rs6000/rs6000.c (rs6000_override_options): On targets
40087         that support VSX, warn for -mno-altivec if vsx is not disabled,
40088         and disable vsx.
40089
40090 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
40091             Shujing Zhao  <pearly.zhao@oracle.com>
40092
40093         PR translation/42469
40094         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
40095         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
40096         character between option name and help text.
40097         * c.opt (imultilib): Likewise.
40098
40099 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
40100
40101         * lto-streamer-out.c (output_unreferenced_globals): Output static
40102         variables.
40103
40104 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
40105
40106         PR rtl-optimization/42621
40107         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
40108         optimizing for size.
40109         (duplicate_computed_gotos): Remove now-redundant check.
40110
40111 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
40112
40113         PR target/37454
40114         * configure.ac: Save and restore LDFLAGS and LIBS
40115         * configure: Regenerate.
40116
40117 2010-01-10  Richard Guenther  <rguenther@suse.de>
40118
40119         PR middle-end/42667
40120         * builtins.c (fold_builtin_strlen): Add type argument and
40121         convert the resulting length to it.
40122         (fold_builtin_1): Adjust.
40123
40124 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
40125
40126         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
40127         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
40128         1 insn.
40129         (num_insns_constant_wide): Adjust for that change.
40130
40131 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
40132
40133         PR debug/42631
40134         * web.c (union_defs): Add used argument, to combine uses of
40135         uninitialized regs.
40136         (entry_register): Adjust type and tests of used argument.
40137         (web_main): Widen used for new use.  Pass it to union_defs.
40138         * df.h (union_defs): Adjust prototype.
40139
40140 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
40141
40142         PR debug/42630
40143         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
40144         uses in new incoming argument.  Free body.
40145         (reset_debug_uses_in_loop): New.
40146         (analyze_insn_to_expand_var): Call the latter if the former found
40147         anything.  Fix whitespace.  Reject invalid dest overlaps before
40148         going through all insns in the loop.
40149
40150 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
40151
40152         PR debug/42629
40153         * haifa-sched.c (dying_use_p): Debug insns don't count.
40154
40155 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
40156
40157         PR middle-end/42363
40158         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
40159         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
40160         (verify_gimple_call): Reject LHS in noreturn calls.
40161
40162 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
40163
40164         PR debug/42604
40165         PR debug/42395
40166         * tree-vect-loop-manip.c (adjust_info): New type.
40167         (adjust_vec): New pointer to vector.
40168         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
40169         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
40170         (slpeel_update_phis_for_duplicate_loop): Use them.
40171         (slpeel_update_phi_nodes_for_guard1): Likewise.
40172         (slpeel_update_phi_nodes_for_guard2): Likewise.
40173         (slpeel_tree_peel_loop_to_edge): Likewise.
40174         (vect_update_ivs_after_vectorizer): Likewise.
40175
40176 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
40177
40178         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
40179         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
40180
40181 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
40182
40183         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
40184         bogus uninitialized warning.
40185
40186 2010-01-09  Richard Guenther  <rguenther@suse.de>
40187
40188         PR middle-end/42512
40189         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
40190         the evolution is compatible with the initial condition.
40191
40192 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
40193
40194         * gcc.c (process_command): Update copyright notice dates.
40195         * gcov.c (print_version): Likewise.
40196         * gcov-dump.c (print_version): Likewise.
40197         * mips-tfile.c (main): Likewise.
40198         * mips-tdump.c (main): Likewise.
40199
40200 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
40201
40202         PR target/41885
40203         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
40204         (rotlhi3): Delete.
40205         (rotlhi3_8): Delete.
40206         (rotlsi3): Delete.
40207         (rotlsi3_8): Delete.
40208         (rotlsi3_16): Delete.
40209         (rotlsi3_24): Delete.
40210         (rotl<mode>3): New.
40211         (*rotw<mode>3): New.
40212         (*rotb<mode>3): New.
40213         * config/avr/avr.c (avr_rotate_bytes): New function.
40214         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
40215
40216 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
40217
40218         PR target/37454
40219         * configure.ac: Modify -rdynamic check.
40220         * configure: Regenerate.
40221
40222 2010-01-08  DJ Delorie  <dj@redhat.com>
40223
40224         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
40225         register popping order.
40226
40227 2010-01-08  Richard Guenther  <rguenther@suse.de>
40228
40229         PR lto/42528
40230         * c.opt (fsigned-char): Also let LTO handle this option.
40231         (funsigned-char): Likewise.
40232
40233 2010-01-07  Richard Guenther  <rguenther@suse.de>
40234
40235         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
40236         (gimple_op): Likewise.
40237         (gimple_op_ptr): Likewise.
40238         (gimple_assign_set_lhs): Remove gcc_assert.
40239         (gimple_assign_set_rhs1): Likewise.
40240         (gimple_assign_set_rhs2): Likewise.
40241         (gimple_call_set_lhs): Likewise.
40242         (gimple_call_set_fn): Likewise.
40243         (gimple_call_set_fndecl): Likewise.
40244         (gimple_call_fndecl): Likewise.
40245         (gimple_call_return_type): Likewise.
40246         (gimple_call_set_chain): Likewise.
40247         (gimple_call_num_args): Likewise.
40248         (gimple_call_set_arg): Likewise.
40249         (gimple_cond_set_code): Likewise.
40250         (gimple_cond_set_lhs): Likewise.
40251         (gimple_cond_set_rhs): Likewise.
40252         (gimple_cond_set_true_label): Likewise.
40253         (gimple_cond_set_false_label): Likewise.
40254         (gimple_label_set_label): Likewise.
40255         (gimple_goto_set_dest): Likewise.
40256         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
40257         (gimple_debug_bind_get_value): Likewise.
40258         (gimple_debug_bind_get_value_ptr): Likewise.
40259         (gimple_debug_bind_set_var): Likewise.
40260         (gimple_debug_bind_set_value): Likewise.
40261         (gimple_debug_bind_reset_value): Likewise.
40262         (gimple_debug_bind_has_value_p): Likewise.
40263         (gimple_return_retval_ptr): Remove gcc_assert.
40264         (gimple_return_retval): Likewise.
40265         (gimple_return_set_retval): Likewise.
40266         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
40267         (safe_referenced_var_iterator): Remove.
40268         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
40269         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
40270         (fill_referenced_var_vec): Remove.
40271         (first_readonly_imm_use): Remove redundant gcc_assert.
40272         (phi_arg_index_from_use): Combine gcc_asserts.
40273         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
40274         (first_imm_use_stmt): Remove redundant gcc_assert.
40275         * tree-cfg.c (verify_gimple_call): Verify function and chain
40276         operands.  Verify arguments.
40277         (verify_types_in_gimple_stmt): Verify condition code and labels.
40278
40279 2010-01-07  Richard Guenther  <rguenther@suse.de>
40280
40281         PR tree-optimization/42641
40282         * sese.c (rename_map_elt_info): Use the SSA name version, do
40283         not hash pointers.
40284
40285 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
40286
40287         PR tree-optimization/42625
40288         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
40289         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
40290
40291 2010-01-07  Duncan Sands  <baldrick@free.fr>
40292
40293         * Makefile.in (PLUGIN_HEADERS): Add version.h.
40294
40295 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
40296
40297         PR target/42511
40298         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
40299         note itself is not function_invariant_p.
40300
40301 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
40302
40303         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
40304         Do not add the DF_NOTE problem.
40305         * store-motion.c (execute_rtl_store_motion): Likewise.
40306
40307 2010-01-07  Martin Jambor  <mjambor@suse.cz>
40308
40309         PR tree-optimization/42157
40310         * tree-sra.c (compare_access_positions): Stabilize sort if both
40311         accesses have integer types, return zero immediately if they are the
40312         same.
40313
40314 2010-01-06  Richard Henderson  <rth@redhat.com>
40315
40316         PR middle-end/41883
40317         * haifa-sched.c (add_to_note_list): Merge into ...
40318         (concat_note_lists): ... here, and ...
40319         (unlink_other_notes, rm_other_notes): Merge into...
40320         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
40321         NOTE_INSN_EPILOGUE_BEG.
40322
40323 2010-01-06  Richard Guenther  <rguenther@suse.de>
40324
40325         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
40326         not inline regular functions into always-inline functions.
40327
40328 2010-01-06  Nick Clifton  <nickc@redhat.com>
40329
40330         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
40331         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
40332         used together.
40333         (OVERRIDE_OPTIONS): Delete.
40334         (OPTIMIZATION_OPTIONS): Define.
40335         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
40336         * config/rx/rx.c (rx_handle_option): Issue an error message if
40337         -mcpu=rx200 and -fpu are used together.
40338         (rx_set_optimization_options): New function.  Issue an error
40339         message if an optimization attribute attempts to reset the FPU/
40340         math optimization pairing.
40341         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
40342         * config/rx/rx.opt: Set the default to 32-bit doubles.
40343         * config/rx/t-rx: Add multilibs for -nofpu option.
40344         * doc/invoke.texi: Update documentation of RX options.
40345
40346 2010-01-06  Richard Guenther  <rguenther@suse.de>
40347
40348         * tree-ssa-pre.c (name_to_id): New global.
40349         (alloc_expression_id): Simplify SSA name handling.
40350         (lookup_expression_id): Likewise.
40351         (init_pre): Zero name_to_id.
40352         (fini_pre): Free it.
40353
40354 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
40355
40356         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
40357
40358 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
40359
40360         PR target/42542
40361         * config/i386/sse.md (smaxv2di3): New.
40362         (umaxv2di3): Likewise.
40363         (sminv2di3): Likewise.
40364         (uminv2di3): Likewise.
40365
40366 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
40367
40368         PR target/42564
40369         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
40370         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
40371         (legitimize_tls_address): Likewise.
40372         (sparc_tls_referenced_p): Likewise.
40373         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
40374         and adjust calls to legitimize_pic_address.
40375         (legitimate_constant_p) Use sparc_tls_referenced_p.
40376         (legitimate_pic_operand_p): Likewise.
40377         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
40378         (sparc_tls_symbol_ref_1): Delete.
40379         (sparc_tls_referenced_p): Make static, recognize specific patterns.
40380         (legitimize_tls_address): Make static, handle CONST patterns.
40381         (legitimize_pic_address): Make static, remove unused parameter and
40382         adjust recursive calls.
40383         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
40384         and adjust call to legitimize_pic_address.
40385         (sparc_output_mi_thunk): Likewise.
40386
40387 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
40388             H.J. Lu  <hongjiu.lu@intel.com>
40389
40390         PR target/42542
40391         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
40392         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
40393         operands to make them signed.
40394
40395         Revert:
40396         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
40397
40398         PR target/42542
40399         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
40400         GTU to GT for V4SI and V2DI.
40401
40402         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
40403         (umin<mode>3): Removed.
40404         (uminv8hi3): New.
40405         (uminv4si3): Likewise.
40406
40407 2010-01-05  Martin Jambor  <mjambor@suse.cz>
40408
40409         PR tree-optimization/42462
40410         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
40411         current_function_decl to helper functions and macros.
40412
40413 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
40414
40415         PR bootstrap/41771
40416         * flags.h: Don't include real.h.
40417         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
40418         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
40419         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
40420         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
40421         * dominance.c: Update copyright.
40422         * gimple.c (walk_gimple_op): Remove inline.
40423         * tree-ssa-reassoc.c: Include real.h.
40424         * Makefile.in (FLAGS_H): Remove $(REAL_H).
40425         (tree-ssa-reassoc.o): Depend on $(REAL_H).
40426
40427 2010-01-05  Nick Clifton  <nickc@redhat.com>
40428
40429         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
40430         register to push into the stack frame when the accumulator has to
40431         be saved during interrupts.
40432
40433 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
40434
40435         * doc/invoke.texi: Remove the documentation about option
40436         -Wunreachable-code.
40437         * common.opt (Wunreachable-code):  Preserved for backward
40438         compatibility.
40439         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
40440         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
40441         the backward compatibility flag section.
40442
40443 2010-01-05  Richard Guenther  <rguenther@suse.de>
40444
40445         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
40446
40447 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
40448
40449         PR other/42611
40450         * cfgexpand.c (expand_one_var): Diagnose too large variables.
40451
40452         PR tree-optimization/42508
40453         * tree-sra.c (convert_callers): Check for recursive call
40454         by comparing cgraph nodes instead of decls.
40455         (modify_function): Call ipa_modify_formal_parameters also
40456         on all same_body aliases.
40457
40458         * cgraphunit.c (cgraph_materialize_all_clones): Compare
40459         cgraph nodes when checking for same_body aliases.
40460
40461 2010-01-05  Richard Guenther  <rguenther@suse.de>
40462
40463         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
40464         allocation and lookup.
40465         (get_or_alloc_expr_for_constant): Likewise.
40466         (phi_translate): Sink allocation.
40467
40468 2010-01-04  Richard Guenther  <rguenther@suse.de>
40469
40470         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
40471         a new entry only if needed.
40472         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
40473         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
40474         hashtable lookup.
40475         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
40476         the result array.
40477         (phi_translate): Handle CONSTANTs early.
40478
40479 2010-01-04  Martin Jambor  <mjambor@suse.cz>
40480
40481         PR tree-optimization/42398
40482         * tree-sra.c (struct access): Removed flag grp_different_types.
40483         (dump_access): Do not dump the removed flag.
40484         (sort_and_splice_var_accesses): Do not set the removed flag.
40485         (sra_modify_expr): Check for type compatibility directly.
40486
40487 2010-01-04  Martin Jambor  <mjambor@suse.cz>
40488
40489         PR tree-optimization/42366
40490         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
40491         edges with variable number of parameters.
40492         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
40493         flag instead of asserting it.
40494         (ipa_read_node_info): Read uses_analysis_done flag.
40495
40496 2010-01-04  Richard Guenther  <rguenther@suse.de>
40497
40498         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
40499         iterative_hash_* as intended.
40500         (vn_reference_compute_hash): Likewise.  Simplify hashing
40501         SSA names.
40502         (vn_reference_lookup_2): Likewise.
40503         (vn_nary_op_compute_hash): Likewise.
40504         (vn_phi_compute_hash): Likewise.
40505         (expressions_equal_p): Remove strange code.
40506         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
40507         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
40508         (bitmap_insert_into_set_1): Take value-id as parameter.
40509         (add_to_value): Pass it.
40510         (bitmap_insert_into_set): Likewise.
40511         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
40512
40513 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
40514
40515         PR driver/42442
40516         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
40517         (do_self_spec): For switches with SWITCH_IGNORE set set also
40518         SWITCH_IGNORE_PERMANENTLY.
40519         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
40520         of SWITCH_IGNORE.
40521
40522 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
40523
40524         * lto-streamer-out.c (output_unreferenced_globals): Output the full
40525         tree of an unreferenced global var.
40526
40527 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
40528
40529         PR target/42542
40530         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
40531         GTU to GT for V4SI and V2DI.
40532
40533         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
40534         (umin<mode>3): Removed.
40535         (uminv8hi3): New.
40536         (uminv4si3): Likewise.
40537
40538 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
40539
40540         PR lto/42581
40541         * collect2.c (main): Turn on trace in collect2 if -v is passed
40542         to gcc with LTO.
40543
40544 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
40545
40546         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
40547         description of expression operand.
40548
40549 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
40550
40551         * configure.ac: Add install-html to target_list for Make-hooks.
40552         * configure: Regenerate.
40553         * fortran/Make-lang.in (F95_HTMLFILES): New.
40554         (fortran.html): Use it.
40555         (fortran.install-html): New.
40556         * Makefile.in (install-html): Add lang.install-html.
40557         * java/Make-lang.in (JAVA_HTMLFILES): New.
40558         (java.html): Use it.
40559         (java.install-html): New.
40560         * objc/Make-lang.in (objc.install-html): New.
40561         * objcp/Make-lang.in (obj-c++.install-html): New.
40562         * cp/Make-lang.in (c++.install-html): New.
40563         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
40564         * lto/Make-lang.in (lto.install-html): New.
40565
40566 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
40567
40568         PR lto/42520
40569         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
40570
40571 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
40572
40573         PR rtl-optimization/41862
40574         * store-motion.c (store_killed_in_insn, compute_store_table,
40575         remove_reachable_equiv_notes, replace_store_insn,
40576         build_store_vectors): Ignore all DEBUG_INSNs.
40577
40578 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
40579
40580         PR lto/41564
40581         * common.opt: Add dumpdir.
40582
40583         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
40584         isn't specified.
40585         (option_map): Add --dumpdir.
40586
40587         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
40588
40589         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
40590
40591         * opts.c (decode_options): Try dump_dir_name first if
40592         dump_base_name isn't an absolute path.
40593         (common_handle_option): Handle OPT_dumpdir.
40594
40595         * toplev.c (dump_dir_name): New.
40596         (print_switch_values): Also ignore -dumpdir.
40597
40598         * toplev.h (dump_dir_name): New.
40599
40600 2010-01-03  Richard Guenther  <rguenther@suse.de>
40601
40602         PR tree-optimization/42589
40603         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
40604         double-word expansion of bswap32.
40605
40606 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
40607
40608         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
40609         with BLOCK_FOR_INSN.
40610         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
40611         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
40612         noce_process_if_block): Likewise.
40613         * gcse.c (compute_local_properties, insert_expr_in_table,
40614         insert_set_in_table, canon_list_insert, find_avail_set,
40615         pre_insert_copy_insn): Likewise.
40616
40617         * basic-block.h (BLOCK_NUM): Move from here...
40618         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
40619
40620 2010-01-03  Richard Guenther  <rguenther@suse.de>
40621
40622         PR tree-optimization/42438
40623         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
40624         contains_may_not_return_call flag.
40625         (BB_MAY_NOTRETURN): New.
40626         (valid_in_sets): Trapping nary operations are not valid
40627         in blocks that may not return.
40628         (insert_into_preds_of_block): Remove check for trapping expressions.
40629         (compute_avail): Compute also BB_MAY_NOTRETURN.
40630
40631 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
40632
40633         * doc/invoke.texi: Add 2010 to copyright years.
40634
40635 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
40636
40637         * config/sparc/sparc.c: Fix formatting nits.
40638
40639 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
40640             Alexander Monakov  <amonakov@ispras.ru>
40641
40642         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
40643
40644 2010-01-02  Richard Guenther  <rguenther@suse.de>
40645
40646         PR middle-end/42577
40647         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
40648         (simplify_switch_using_ranges): Mark to be removed edges
40649         as non-executable.
40650
40651 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
40652
40653         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
40654
40655         * collect2.c (scan_libraries): Add missing argument in call to
40656         scan_prog_file.
40657
40658 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
40659
40660         PR target/42448
40661         * config/alpha/predicates.md (aligned_memory_operand): Return false
40662         for CQImode.
40663         (unaligned_memory_operand): Return true for CQImode.
40664         * config/alpha/alpha.c (get_aligned_mem): Assert that location
40665         doesn not cross aligned SImode word boundary.
40666
40667 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
40668
40669         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
40670         Remove.
40671         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
40672         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
40673
40674 2010-01-02  Richard Guenther  <rguenther@suse.de>
40675
40676         PR lto/41597
40677         * toplev.c (compile_file): Emit LTO marker properly.  Change
40678         it to __gnu_lto_v1.
40679         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
40680
40681 2010-01-01  Richard Guenther  <rguenther@suse.de>
40682
40683         PR debug/42455
40684         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
40685
40686 2010-01-01  Richard Guenther  <rguenther@suse.de>
40687
40688         PR c/42570
40689         * c-decl.c (grokdeclarator): For zero-size arrays force
40690         structural equality checks as layout_type does.
40691
40692 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
40693
40694         * builtins.c: Update copyright to 2010.
40695
40696 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
40697
40698         PR lto/42531
40699         * lto-streamer-out.c (produce_asm): Revert the last change.
40700         (copy_function): Likewise.
40701
40702         * lto-streamer.c (lto_get_section_name): Skip any leading
40703         asterisk in name.
40704
40705 2010-01-01  Richard Guenther  <rguenther@suse.de>
40706
40707         PR middle-end/42559
40708         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
40709         for LABEL_DECLs.
40710
40711 \f
40712 Copyright (C) 2010 Free Software Foundation, Inc.
40713
40714 Copying and distribution of this file, with or without modification,
40715 are permitted in any medium without royalty provided the copyright
40716 notice and this notice are preserved.