OSDN Git Service

* tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
2
3         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
4         build1_stat.
5
6 2010-05-28  Richard Guenther  <rguenther@suse.de>
7
8         PR lto/44312
9         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
10         Stream fixed-point constants mode.
11         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
12         and TYPE_PRECISION.
13         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
14         Stream fixed-point constants mode.
15         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
16         and TYPE_PRECISION.
17
18 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
19
20         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
21         only place it was called from.
22         (number_of_latch_executions): Do not return chrec_dont_know when the
23         may_be_zero is a runtime condition: instead, return a COND_EXPR
24         including the may_be_zero condition.
25         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
26         of nb_iterations.
27         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
28         COND_EXPRs.
29
30 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
31
32         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
33         generate COND_EXPRs for degenerate_phi_result.
34
35 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
36
37         PR middle-end/44293
38         * tree-if-conv.c (if_convertible_loop_p): Check the
39         if-convertibility of phi nodes in non predicated BBs.
40
41 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
42
43         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
44
45 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
46
47         PR driver/15303
48         * gcc.c (inform, warning, inform): New functions.
49         (fatal_ice): Rename to internal_error; change cmsgid parameter to
50         gmsgid.  All callers changed.
51         (notice): Rename to fnotice; add parameter fp.  All callers
52         changed.
53         (fatal_error): Rename to fatal_signal.  All users changed.
54         (fatal): Rename to fatal_error; change cmsgid parameter to
55         gmsgid.  All callers changed.
56         (process_command): Use warning instead of error for warnings.
57         (end_going_arg): Don't use _() around argument of error.
58         (do_spec_1): Use inform for message from %n specs.  Use warning
59         instead of error for warnings.
60         (main): Use inform for comparison messages.  Use warning for
61         message about unused linker input.
62         (error): Increment error_count.  Print "error: ".
63         * gcc.h (fatal): Change to fatal_error.
64         (warning): Declare.
65         * config/darwin-driver.c (darwin_default_min_version): Use warning
66         instead of fprintf for warnings.
67         * cppspec.c (lang_specific_driver): Use fatal_error instead of
68         fatal.
69
70 2010-05-28  Julian Brown  <julian@codesourcery.com>
71
72         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
73         (*thumb2_addsi3_compare0_scratch): New.
74         * config/arm/constraints.md (Pv): New.
75         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
76         for ARM mode only.
77         (*addsi3_compare0_scratch): Likewise.
78
79 2010-05-28  Jan Hubicka  <jh@suse.cz>
80
81         * ipa-reference.c (add_static_var): Remove redundant all_module_statics check.
82         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis only
83         on local statics.
84
85 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
86
87         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
88
89 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
90
91         PR bootstrap/44314
92         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
93         (OPTION_GLIBC): Define.
94
95 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
96
97         PR debug/41048
98         * dwarf2out.c (double_int_type_size_in_bits): New function.
99         (round_up_to_align): Change first argument and return value to
100         double_int.
101         (field_byte_offset): Work internally on double_ints.
102
103         PR target/43636
104         * builtins.c (expand_movstr): Use a temporary pseudo instead
105         of target even when target is not NULL and not const0_rtx, but
106         fails movstr predicate.
107         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
108
109 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
110
111         * final.c (rest_of_clean_state): Use %m in errors instead of
112         strerror (errno).
113         * gengtype.c (read_input_list, close_output_files): Use xstrerror
114         instead of strerror.
115         * toplev.c (process_options): Use %m in errors instead of strerror
116         (errno).
117         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
118         (errno).
119
120 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
121
122         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
123         (ix86_canonical_va_list_type): Make static.  Add declaration.
124         (ix86_enum_va_list): Make static.  Reindent.
125         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
126         (ix86_canonical_va_list_type): Ditto.
127         (ix86_enum_va_list): Ditto.
128
129 2010-05-28  Richard Guenther  <rguenther@suse.de>
130
131         * lto-wrapper.c (run_gcc): With -save-temps generate a
132         user-visible ltrans filename.  Fixup ltrans unit numbering.
133
134 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
135
136         * c-common.c (c_common_nodes_and_builtins): Replace use
137         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
138         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
139         to ix86_enum_va_list.
140         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
141         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
142         (TARGET_ENUM_VA_LIST_P): Add hook description.
143         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
144         * target.h (gcc_target): Add enum_va_list hook.
145
146         PR bootstrap/44299
147         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
148         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
149         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
150
151 2010-05-28  Alan Modra  <amodra@gmail.com>
152
153         PR target/44266
154         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
155         emit_library_call machinery to set up __tls_get_addr calls.
156
157 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
158
159         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
160
161 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
162
163         revert fix for PR c++/44188
164         * c-common.c (is_typedef_decl): Revert the moving of  this
165         definition ...
166         * tree.c (is_typedef_decl): ... here.
167         (typdef_variant_p): Revert the moving of this  definition
168         here from gcc/cp/tree.c.
169         * c-common.h (is_typedef_decl): Revert the moving of this
170         declaration ...
171         * tree.h (is_typedef_decl): ... here.
172         (typedef_variant_p): Revert the moving of this  declaration here
173         from gcc/cp/cp-tree.h
174         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
175         (gen_tagged_type_die): Revert the splitting out of ...
176         (gen_type_die_with_usage): ... this function. Revert the anonymous
177         tagged type handling.
178         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
179         typedefs naming anonymous tagged types.
180
181
182 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
183
184         * config/rs6000/rs6000-modes.def (PSImode): Delete.
185
186 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
187
188         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
189         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
190         throughout.
191         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
192         "xer" to "ca".
193         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
194         XER_REGS to CA_REGS throughout.
195         * config/rs6000/rs6000.h: Same.
196         (ADDITIONAL_REGISTER_NAMES): Add "xer".
197         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
198         that mode_iterator "P" is the size for arithmetic carries as well.
199         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
200
201 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
202
203         PR bootstrap/44255
204         * combine.c (struct rtx_subst_pair): Define unconditionally.
205         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
206         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
207         Call make_compound_operation on pair->to.
208         (propagate_for_debug): Don't call make_compound_operation here.
209         Always use simplify_replace_fn_rtx.
210
211 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
212
213         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
214         * config/xtensa/xtensa.c (override_options): Check
215           TARGET_FORCE_NO_PIC and set flag_pic.
216         * config/xtensa/xtensa.opt: Document -mforce-no-pic
217
218 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
219
220         PR bootstrap/44299
221         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
222         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
223
224 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
225
226         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
227         toplev.h.
228         * diagnostic.c: Don't include toplev.h.
229         (progname): Define.  Moved from toplev.c.
230         (seen_error): New function.
231         * diagnostic.h: Include diagnostic-core.h.
232         (diagnostic_t, emit_diagnostic): Don't declare here.
233         * toplev.c (progname): Move to toplev.c.
234         (emit_debug_global_declarations, compile_file, finalize,
235         do_compile, toplev_main): Use seen_error.
236         * toplev.h: Include diagnostic-core.h.
237         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
238         internal_error, warning, warning_at, error, error_n, error_at,
239         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
240         verbatim, fnotice, progname): Move to diagnostic-core.h.
241         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
242         (expand_builtin_expect): Use seen_error.
243         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
244         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
245         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
246         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
247         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
248         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
249         errorcount for errors.
250         * c-opts.c (c_common_finish): Use seen_error.
251         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
252         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
253         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
254         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
255         (get_coverage_counts): Use seen_error.
256         * dwarf2out.c (dwarf2out_finish): Use seen_error.
257         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
258         gimplify_body): Use seen_error.
259         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
260         * ipa-pure-const.c (gate_pure_const): Use seen_error.
261         * ipa-reference.c (gate_reference): Use seen_error.
262         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
263         * lambda-code.c: Include diagnostic-core.h instead of
264         diagnostic.h.
265         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
266         * lto-compress.c: Include diagnostic-core.h instead of
267         diagnostic.h.
268         * lto-section-in.c: Include diagnostic-core.h instead of
269         diagnostic.h.
270         * lto-streamer-out.c: Include diagnostic-core.h instead of
271         diagnostic.h.
272         * lto-streamer.c: Include diagnostic-core.h instead of
273         diagnostic.h.
274         (gate_lto_out): Use seen_error.
275         * matrix-reorg.c: Include diagnostic-core.h instead of
276         diagnostic.h.
277         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
278         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
279         (gate_expand_omp, lower_omp_1): Use seen_error.
280         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
281         (rest_of_decl_compilation, rest_of_type_compilation,
282         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
283         * tree-cfg.c (label_to_block_fn): Use seen_error.
284         * tree-inline.c (optimize_inline_calls): Use seen_error.
285         * tree-mudflap.c (mudflap_finish_file): Use
286         seen_error.
287         * tree-optimize.c (gate_all_optimizations,
288         gate_all_early_local_passes, gate_all_early_optimizations): Use
289         seen_error.
290         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
291         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
292         (varpool_remove_unreferenced_decls,
293         varpool_assemble_pending_decls): Use seen_error.
294         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
295         (TOPLEV_H, DIAGNOSTIC_H): Update.
296         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
297         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
298         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
299         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
300         coverage.o, lambda-code.o): Update dependencies.
301
302 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
303
304         PR c++/44188
305         * c-common.c (is_typedef_decl): Move this definition ...
306         * tree.c (is_typedef_decl): ... here.
307         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
308         * c-common.h (is_typedef_decl): Move this declaration ...
309         * tree.h (is_typedef_decl): ... here.
310         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
311         * dwarf2out.c (is_naming_typedef_decl): New function.
312         (gen_tagged_type_die): Split out of ...
313         (gen_type_die_with_usage): ... this function. When an anonymous
314         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
315         is emitted for the typedef.
316         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
317         anonymous tagged types.
318
319 2010-05-27  Jason Merrill  <jason@redhat.com>
320
321         * print-tree.c (debug_vec_tree): New fn.
322         (print_vec_tree): New fn.
323         * tree.h: Declare them.
324         * gdbinit.in (pvt): New command.
325
326         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
327
328         * gdbinit.in (pdd): New command.
329
330 2010-05-27  Jan Hubicka  <jh@suse.cz>
331
332         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
333         (update_caller_keys): Return early if there are no callers;
334         only update fibheap when decresing the key.
335         (update_callee_keys): Avoid recursion.
336         (decide_inlining_of_small_functions): When badness does not match;
337         re-insert into fibheap.
338
339 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
340
341         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
342         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
343         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
344         (ALL_HOST_OBJS): Now a union of the above two.
345         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
346         all files in ALL_HOST_FRONTEND_OBJS.
347         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
348
349         * c-common.c: Pretend to be a backend file by undefining
350         IN_GCC_FRONTEND (still need rtl.h here).
351
352 2010-05-27  Jan Hubicka  <jh@suse.cz>
353
354         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
355         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
356
357 2010-05-27  Jan Hubicka  <jh@suse.cz>
358
359         * sched-ebb.c: Rename struct deps to struct deps_desc.
360         * ddg.c: Likewise.
361         * sel-sched-ir.c: Likewise.
362         * sched-deps.c: Likewise.
363         * sched-int.h: Likewise.
364         * sched-rgn.c: Likewise.
365
366 2010-05-27  Jon Beniston <jon@beniston.com>
367
368         PR 43726
369         * config/lm32/lm32.h: Remove definition of 
370         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
371
372 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
373
374         PR lto/44230
375         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
376
377 2010-05-27  Richard Guenther  <rguenther@suse.de>
378
379         PR tree-optimization/44284
380         * tree-vect-stmts.c (vectorizable_assignment): Handle
381         sign-changing conversions as simple copy.
382
383 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
384
385         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
386         Bionic C library.
387         (__gthread_active_p): Check for pthread_create if compiling against
388         Bionic C library.
389
390 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
391
392         Support compilation for Android platform.  Reimplement -mandroid.
393
394         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
395         (*android*): Set ANDROID_DEFAULT.
396         (arm*-*-linux*): Include linux-android.h.
397         (arm*-*-eabi*): Don't include previous -mandroid implementation.
398         * config/arm/eabi.h: Remove, move Android-specific parts ...
399         * config/linux-android.h: ... here.  New file.
400         * config/arm/eabi.opt: Rename to ...
401         * config/linux-android.opt: ... this.
402         (mandroid): Allow -mno-android option.  Initialize based on
403         ANDROID_DEFAULT.
404         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
405         Move logic to corresponding LINUX_TARGET_* macros.
406         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
407         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
408         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
409         Android definitions.
410         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
411         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
412         Document.
413
414 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
415
416         Add support for Bionic C library
417
418         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
419         macro.
420         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
421         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
422
423         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
424         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
425         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
426         to support multiple C libraries.  Handle Bionic.
427         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
428         (BIONIC_DYNAMIC_LINKER64): Define.
429         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
430         Update.
431         (TARGET_HAS_SINCOS): Enable for Bionic.
432
433         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
434         the last option specified on command line take effect.
435         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
436         (mbionic): New.
437         (mglibc, muclibc): Update.
438
439         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
440         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
441         DEFAULT_LIBC.
442
443         * doc/invoke.texi (-mglibc, -muclibc): Update.
444         (-mbionic): Document.
445
446 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
447
448         * c-common.h (c_register_addr_space): Add prototype.
449         (ADDR_SPACE_KEYWORD): Remove.
450         * c-common.c (c_register_addr_space): New function.
451         (c_addr_space_name): Reimplement.
452         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
453
454         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
455         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
456
457         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
458         Remove TARGET_ADDR_SPACE_KEYWORDS.
459
460 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
461
462         * input.c: New file.
463         * input.h (main_input_filename): Move declaration to toplev.h.
464         * toplev.c (input_location, line_table): Move to input.c
465         * toplev.h (main_input_filename): Move declaration from input.h.
466         * tree.c (expand_location): Move to input.c.
467         * Makefile.in (OBJS-common): Add input.o.
468         (input.o): Add dependencies.
469
470 2010-05-27  Richard Guenther  <rguenther@suse.de>
471
472         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
473         for non-existant files.
474         (fork_execute): Mark args_name file as deleted.
475
476 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
477
478         PR bootstrp/44287
479         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
480         (narrow_signed_type): Likewise.
481
482 2010-05-26  Jan Hubicka  <jh@suse.cz>
483
484         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
485         edge only when checking is enabled; check using former_clone_of;
486         check inline clones too.
487         (cgraph_materialize_clone): Record former_clone_of pointer.
488         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
489         combining redirections; dump args_to_skip bitmap
490         (cgraph_materialize_all_clones): Do no redirection here.
491         * ipa-inline.c (inline_transform): Do redirection here.
492         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
493         cheking only).
494
495 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
496
497         * config/avr/avr-c.c: Do not include regs.h.
498         Include cpplib.h for cpp_define and tree.h for c-common.h.
499         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
500         * config/avr/t-avr: Fix dependencies for avr-c.o.
501
502 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
503
504         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
505         string instead of SYMBOL_REF rtx.
506         * rtl.h (set_stack_check_libfunc): Move prototype from here...
507         * libfuncs.h: ...to here.  Adjust for explow.c change.
508
509 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
510
511         * pretty-print.c: Don't include ggc.h.
512         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
513         (identifier_to_locale): Use them for allocation.
514         * pretty-print.h (identifier_to_locale_alloc,
515         identifier_to_locale_free): Declare.
516         * toplev.c (alloc_for_identifier_to_locale): New.
517         (general_init): Set identifier_to_locale_alloc and
518         identifier_to_locale_free.
519         * Makefile.in (pretty-print.o): Update dependencies.
520
521 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
522
523         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
524         pointer types if they have different alignment or mode.
525
526 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
527
528         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
529         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
530         * config/sparc/sparc-protos.h (function_value): Remove declaration.
531         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
532         sparc_function_value_regno_p): New functions.
533         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
534         TARGET_FUNCTION_VALUE_REGNO_P): Define.
535         (function_value): Rename to...
536         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
537         argument to 'outgoing'.
538         (function_arg_record_value, function_arg_union_value,
539         function_arg_vector_value): Update comment.
540
541 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
542
543         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
544         (fde_needed_for_eh_p): New predicate.
545         (output_call_frame_info): Use it throughout to decide whether FDEs
546         are needed for EH purpose.
547         (dwarf2out_begin_prologue): Reorder assignments.
548
549 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
550
551         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
552         special case loop->header.
553         (is_predicated): New.
554         (if_convertible_loop_p): Call it.
555
556 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
557
558         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
559         iterator in parameter.  Do not generate code during the analysis.
560         (tree_if_convert_cond_stmt): Removed.
561         (tree_if_convert_stmt): Removed.
562         (predicate_bbs): New.
563         (if_convertible_loop_p): Call predicate_bbs.
564         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
565         now contains all the analysis part.
566
567 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
568
569         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
570         statements in the analysis part.
571         (tree_if_convert_stmt): Update comment.
572         (remove_conditions_and_labels): New.
573         (combine_blocks): Call remove_conditions_and_labels.
574         (tree_if_conversion): Update comment.
575
576 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
577
578         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
579         than 2 predecessors or more than 2 successors.
580
581 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
582
583         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
584         of loops in which the data dependence analysis fails.
585
586 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
587
588         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
589         CDI_POST_DOMINATORS.
590         (tree_if_conversion): Same.
591
592 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
593
594         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
595
596 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
597
598         * tree-if-conv.c: Update copyright years.  Fix comments.
599         Fix indentation.
600
601 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
602
603         * builtin-types.def (BT_INT128): New primitive type.
604         (BT_UINT128): Likewise.
605         * c-common.c (c_common_r): Add __int128 keyword.
606         (c_common_type_for_size): Handle __int128.
607         (c_common_type_for_mode): Likewise.
608         (c_common_signed_or_unsigned_type): Likewise.
609         (c_common_nodes_and_builtins): Add builtin type
610         if target supports 128-bit integer scalar.
611         * c-common.h (enum rid): Add RID_INT128.
612         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
613         if target supports 128-bit integer scalar.
614         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
615         (finish_declspecs): Likewise.
616         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
617         (c_token_starts_declspecs): Likewise.
618         (c_parser_declspecs): Likewise.
619         (c_parser_attributes): Likewise.
620         (c_parser_objc_selector): Likewise.
621         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
622         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
623         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
624         * tree.c (make_or_reuse_type): Likewise.
625         (make_unsigned_type): Likewise.
626         (build_common_tree_nodes_2): Likewise.
627         * tree.h (enum integer_type_kind): Add itk_int128 and
628         itk_unsigned_int128.
629         (int128_integer_type_node): New define.
630         (int128_unsigned_type_node): New define.
631         * doc/extend.texi: Add documentation about __int128 type.
632
633 2010-05-26  Richard Guenther  <rguenther@suse.de>
634
635         * tree-ssa-sccvn.c (copy_nary): Adjust.
636         (copy_phis): Rename to ...
637         (copy_phi): ... this.  Adjust.
638         (copy_references): Rename to ...
639         (copy_reference): ... this.  Adjust.
640         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
641         result into the valid table.
642
643 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
644
645         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
646         insn-config.h, insn-codes.h, recog.h, and optabs.h.
647
648 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
649
650         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
651
652 2010-05-26  Richard Guenther  <rguenther@suse.de>
653
654         * opts.c (common_handle_option): Handle OPT_Ofast.
655
656 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
657
658         * diagnostic.c: Don't include opts.h.
659         (permissive_error_option): Define.
660         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
661         for classify_diagnostic.  Don't use memset for
662         classify_diagnostic.  Initialize new and recently added fields.
663         (diagnostic_classify_diagnostic): Use context->n_opts instead of
664         N_OPTS.
665         (diagnostic_report_diagnostic): Pass context parameter to
666         diagnostic_report_warnings_p.  Use option_enabled and option_name
667         hooks from context.
668         (emit_diagnostic): Use permissive_error_option.
669         (permerror): Likewise.
670         * diagnostic.h: Don't include options.h.
671         (struct diagnostic_context): Add n_opts, opt_permissive,
672         inhibit_warnings, warn_system_headers, option_enabled and
673         option_name fields.  Change classify_diagnostic to a pointer.
674         * opts-diagnostic.h: New file.
675         * opts.c: Include opts-diagnostic.h.
676         (common_handle_option): Set global_dc fields for -Wfatal-errors,
677         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
678         (option_name): New function.
679         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
680         (c_common_handle_option): Set global_dc->permissive for
681         -fpermissive.
682         * c-common.c (c_cpp_error): Save and restore
683         global_dc->warn_system_headers, not variable warn_system_headers.
684         * toplev.c: Include opts-diagnostic.h.
685         (general_init): Update call to diagnostic_initialize.  Set
686         global_dc->show_column, global_dc->option_enabled and
687         global_dc->option_name.
688         (process_options): Don't set global_dc fields here.
689         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
690         (diagnostic.o, opts.o, toplev.o): Update dependencies.
691
692 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
693
694         * config/picochip/picochip.md (movsi): Split a movsi from a
695         const after reload.
696
697 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
698
699         * ggc-zone.c: Update copyright year.
700         (poison_region): Mark memory for Valgrind as undefined before
701         memset () call and inaccessible afterwards.
702         (ggc_pch_total_size): Change type of i to int.
703
704 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
705
706         * ggc-common.c (ggc_free_overhead): Allow empty slot.
707
708 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
709
710         * ggc-common.c: Update copyright year.
711         (ggc_rlimit_bound): Remove prototype.  Compile only if
712         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
713         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
714         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
715         (ggc_min_heapsize_heuristic): Likewise.
716
717 2010-05-26  Richard Guenther  <rguenther@suse.de>
718
719         PR rtl-optimization/44164
720         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
721         no-common access-path disambiguation.
722         (indirect_ref_may_alias_decl_p): Adjust.
723         (indirect_refs_may_alias_p): Likewise.
724         (refs_may_alias_p_1): Likewise.
725
726 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
727
728         * c-typeck.c: Do not include expr.h.
729
730 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
731
732         * rtl.h (decl_default_tls_model): Move prototype from here...
733         * output.h: ...to here.
734         * c-decl.c: Do not include rtl.h.
735         * c-pragma.c: Likewise.
736         * c-parser.c: Likewise.
737         * c-gimplify.c: Likewise.  And also not hard-reg-set.
738         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
739         FIXME note for it.  Add a FIXME note for expr.h.
740         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
741         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
742         defined.
743
744 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
745
746         PR target/44199
747         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
748         or total_size is larger than red zone size for non-V4 ABI, emit a
749         stack_tie resp. frame_tie insn before stack pointer restore.
750         * config/rs6000/rs6000.md (frame_tie): New insn.
751
752 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
753
754         * function.h (struct function): Add can_throw_non_call_exceptions bit.
755         * lto-streamer-in.c (input_function): Stream it in.
756         * lto-streamer-out.c (output_function): Stream it out.
757         * function.c (allocate_struct_function): Set it.
758         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
759         for flag_non_call_exceptions.
760         * cfgbuild.c (control_flow_insn_p): Likewise.
761         (make_edges): Likewise.
762         * cfgexpand.c (expand_stack_alignment): Likewise.
763         * combine.c (distribute_notes): Likewise.
764         * cse.c (cse_extended_basic_block): Likewise.
765         * except.c (insn_could_throw_p): Likewise.
766         * gcse.c (simple_mem): Likewise.
767         * ipa-pure-const.c (check_call): Likewise.
768         (check_stmt ): Likewise.
769         * lower-subreg.c (lower-subreg.c): Likewise.
770         * optabs.c (emit_libcall_block): Likewise.
771         (prepare_cmp_insn): Likewise.
772         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
773         * postreload.c (rest_of_handle_postreload): Likewise.
774         * reload1.c (reload_as_needed): Likewise.
775         (emit_input_reload_insns): Likewise.
776         (emit_output_reload_insns): Likewise.
777         (fixup_abnormal_edges): Likewise.
778         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
779         * store-motion.c (find_moveable_store): Likewise.
780         * tree-eh.c (stmt_could_throw_p): Likewise.
781         (tree_could_throw_p): Likewise.
782         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
783         * config/arm/arm.c (arm_expand_prologue): Likewise.
784         (thumb1_expand_prologue): Likewise.
785         * config/rx/rx.md (cbranchsf4): Likewise.
786         (cmpsf): Likewise.
787         * config/s390/s390.c (s390_emit_prologue): Likewise.
788         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
789         (inline_forbidden_into_p): New predicate.
790         (expand_call_inline): Use it to forbid inlining.
791         (tree_can_inline_p): Likewise.
792
793 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
794
795         * config/i386/i386-c.c: Do not include rtl.h.
796         * config/i386/t-i386: Update dependencies.
797
798 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
799
800         * attribs.c: Do not include rtl.h.
801         * Makefile.in: Update dependencies.
802
803 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
804
805         * double-int.h (double_int_and): New.
806         * combine.c (try_combine): Clean up, use double_int_* and
807         immed_double_int_const functions.
808
809 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
810
811         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
812         stderr to /dev/null instead of grep -q.
813         * configure: Regenerate.
814
815 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
816
817         * Makefile.in (EXCEPT_H): Fix typo.
818
819 2010-05-25  Vladimir Makarov <vmakarov@redhat.com>
820
821         * ira-build.c (update_conflict_hard_reg_costs): New.
822         (ira_build): Call update_conflict_hard_reg_costs.
823
824 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
825
826         PR debug/41371
827         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
828         ENABLE_CHECKING.
829         (intersect_loc_chains): Walk the s2var's loc_chain together
830         with s1node chain as long as the locations are equal, don't
831         call find_loc_in_1pdv in that case.
832
833         PR debug/42801
834         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
835         (copy_bind_expr): ... instead of here.
836         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
837         if the block hasn't been remapped.
838         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
839         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
840
841 2010-05-25  Richard Guenther  <rguenther@suse.de>
842
843         PR middle-end/44069
844         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
845         out-of-bounds array accesses.
846
847 2010-05-25  Richard Guenther  <rguenther@suse.de>
848
849         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
850         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
851         (run_gcc): Re-organize to make cleanup easier.
852
853 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
854
855         * config/s390/s390.c (optimization_options): Fix and move the
856         flag_prefetch_loop_arrays override ...
857         (override_options): ... here.
858
859 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
860
861         * diagnostic.c: Don't include plugin.h.
862         (diagnostic_report_diagnostic): Don't handle plugins specially
863         here.  Pass context to internal_error callback.
864         * diagnostic.h (struct diagnostic_context): Add context parameter
865         to internal_error callback.
866         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
867         * plugin.h (struct diagnostic_context): Declare.
868         (warn_if_plugins, plugins_internal_error_function): Declare.
869         * toplev.c (general_init): Set global_dc->internal_error.
870         * Makefile.in (diagnostic.o): Update dependencies.
871
872 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
873
874         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
875         * config/rs6000/t-darwin64: New.
876         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
877         build crt2.
878
879 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
880
881         PR 44203
882         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
883         match the original (and intended) behaviour before r159557.  This
884         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
885         in two ways.
886
887 2010-05-25  Richard Guenther  <rguenther@suse.de>
888
889         * doc/invoke.texi: Document -Ofast.
890         * target.h (struct gcc_target): Add handle_ofast.
891         * target-def.h (TARGET_HANDLE_OFAST): Add.
892         (TARGET_INITIALIZER): Adjust.
893         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
894         * common.opt (Ofast): Add.
895
896 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
897
898         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
899         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
900
901 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
902
903         PR target/43610
904         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
905         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
906         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
907         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
908
909 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
910
911         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
912         DW_OP_minus with negated offset instead of DW_OP_plus.
913         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
914
915 2010-05-25  Wei Guozhi  <carrot@google.com>
916
917         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
918         tst instruction and a new alternative.
919         * config/arm/constraints.md (Pu): New constraint.
920
921 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
922
923         * function.c (assign_stack_local_1): Initialize variable
924         to avoid warning when bootstrapping at -O3.
925
926 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
927
928         * configure.ac (all_lang_makefiles): Remove everything related to it.
929         * configure: Regenerate.
930         * Makefile.in: Fix reference to ada Make-lang.in.
931         Remove support for LANG_MAKEFILES.
932
933 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
934             Sandra Loosemore  <sandra@codesourcery.com>
935
936         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
937         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
938         description.  Add arm_neon_fp16_ok.
939         (Add Options): Add arm_neon and arm_neon_fp16.
940
941 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
942
943         * diagnostic.c: Don't include flags.h.
944         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
945         context parameters.  Check flags in the context passed as a parameter.
946         (diagnostic_build_prefix): Add context parameter.  Check
947         show_column flag in context.
948         (diagnostic_action_after_output): Check fatal_errors flag in context.
949         (diagnostic_report_current_module): Check show_column flag in context.
950         (default_diagnostic_starter): Update call to
951         diagnostic_build_prefix.
952         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
953         (emit_diagnostic): Pass context to permissive_error_kind.
954         (permerror): Pass context to permissive_error_kind.
955         * diagnostic.h (struct diagnostic_context): Add show_column,
956         pedantic_errors, permissive and fatal_errors fields.
957         (diagnostic_build_prefix): Update prototype.
958         * langhooks.c
959         * toplev.c (process_options): Set flags in global_dc from
960         flag_show_column, flag_pedantic_errors, flag_permissive,
961         flag_fatal_errors.
962         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
963         to diagnostic_build_prefix.
964         * Makefile.in (diagnostic.o): Update dependencies.
965
966 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
967
968         * config/i386/ia32intrin.h (__crc32q): Define only if
969         __SSE4_2__ is defined.
970
971 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
972
973         PR target/44132
974         PR middle-end/43602
975         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
976         DECL_VISIBILITY_SPECIFIED.
977         (emutls_decl): Set DECL_PRESERVE_P and copy
978         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
979         (emutls_finalize_control_var): New callback.
980         (emutls_finish): Finalize emutls control variables.
981         * toplev.c (compile_file): Move the call to emutls_finish ()
982         before varpool_assemble_pending_decls ().
983
984 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
985
986         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
987         added to the preprocessor condition.
988
989 2010-05-24  Paul Brook  <paul@codesourcery.com>
990
991         * gengtype-lex.l: Add HARD_REG_SET.
992         * expr.c (expand_expr_real_1): Record writes to hard registers.
993         * function.c (rtl_data): Add asm_clobbers.
994         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
995         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
996         Use crtl->asm_clobbers.
997
998 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
999
1000         * doc/makefile.texi (Makefile): Mention stages 'profile'
1001         and 'feedback' for profiledbootstrap.
1002
1003 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
1004
1005         PR target/44245
1006         * config/i386/i386.c (def_builtin): Properly check
1007         OPTION_MASK_ISA_64BIT.
1008
1009 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
1010
1011         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
1012         typedefs with different but compatible types.  Allow duplicate
1013         typedefs with the same type except for pedantic non-C1X, but give
1014         warning for variably modified types.
1015         * c-typeck.c (tagged_types_tu_compatible_p,
1016         function_types_compatible_p, type_lists_compatible_p,
1017         comptypes_internal): Add parameter different_types_p; set
1018         *different_types_p for different but compatible types.  All
1019         callers changed.
1020         (comptypes_check_different_types): New.
1021         * c-tree.h (comptypes_check_different_types): Declare.
1022
1023 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
1024
1025         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
1026         * jump.c: Include basic-block.h.
1027         * profile.c: Likewise.
1028         * tree-profile.c: Likewise.
1029         * coverage.c: Likewise.
1030         * basic-block.h (optimize_function_for_size_p): Move to function.h.
1031         (optimize_function_for_speed_p): Likewise.
1032         * function.h (optimize_function_for_size_p,
1033         optimize_function_for_speed_p): Moved here from basic-block.h.
1034         * Makefile.in: Update dependencies.
1035
1036 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1037
1038         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
1039         before calling make; allow override through $MAKE.
1040         * doc/invoke.texi (Optimize Options): Document override.
1041
1042 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
1043
1044         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
1045         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
1046         (rs6000_mode_dependent_address_ptr): Make static.
1047         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
1048         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
1049         Remove.
1050
1051 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
1052
1053         PR target/43869
1054         * config/i386/i386.c: Make sure that the correct regparm is passed.
1055
1056 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
1057
1058         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
1059         * sbitmap.c: ...to here to internalize sbitmap element access.
1060         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
1061         Explain why basic-block.h is included.
1062         * function.h: Include tm.h for CUMULATIVE_ARGS.
1063         * Makefile.in: Update dependencies.
1064
1065 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
1066
1067         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
1068         New core types.
1069         * sbitmap.h (struct sbitmap_def): Do not typedef here.
1070         * sbitmap.c: Include sbitmap.h.
1071         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
1072         hard-reg-set.h.  Split everything related to regsets out from here...
1073         * regset.h: ...to here.  New file.
1074         * df.h: Include regset.h and sbitmap.h.
1075         * tree-flow.h: Likewise.
1076         * cfgloop.h: Likewise.
1077         * except.h: Do not include sbitmap.h.  Include hashtab.h.
1078         * cgraph.h: Include vec.h and function.h.
1079         * reload.h (struct insn_chain): Change types of live_throughout
1080         and dead_or_set from regset_head to bitmap_head.
1081         (compute_use_by_pseudos): Be defined also if regset.h is not included.
1082         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
1083         spilled_regs from regset_head to bitmap_head to avoid dependency
1084         in regset.h.
1085         * sel-sched-ir.h: Include regset.h.
1086         * reload.c: Include df.h before reload.h.
1087         * caller-save.c: Likewise.
1088         * reload1.c: Likewise.
1089         * ira.c: Likewise.
1090         (mark_elimination): Update type of r to bitmap, consistent with
1091         DF_LR_IN.
1092         * dominance.c: Include bitmap.h.
1093         * modulo-sched.c: Include df.h.
1094         * cfganal.c: Include bitmap.h and sbitmap.h.
1095         * cfgbuild.c: Include sbitmap.h.
1096         * lcm.c: Include sbitmap.h.
1097         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
1098         * domwalk.c: Include sbitmap.h, exclude ggc.h.
1099         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
1100         * cselib.c: Include bitmap.h.
1101         * tree-optimize.c: Include regset.h.
1102         * stmt.c: Include bitmap.h.
1103         * Makefile.in: Update dependencies.
1104
1105 2010-05-22  Jan Hubicka  <jh@suse.cz>
1106
1107         * cgraph.h (struct varpool_node): Add same_comdat_group.
1108         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
1109         pointer.
1110         (output_varpool): Update call of lto_output_varpool_node.
1111         (input_varpool): Read same_comdat_group pointer.
1112         (input_varpool_1): Fixup same_comdat_group pointer.
1113         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
1114         group is needed, all are.
1115         * varpool.c (varpool_remove_node): Remove node from same comdat group
1116         linklist too.
1117         (varpool_analyze_pending_decls): Walk same comdat groups.
1118
1119 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
1120
1121         * rtl.h (union rtunion_def): Remove rt_bit member.
1122         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
1123         * print-rtl (print_rtx): Do not print the member.
1124         * gengtype.c (adjust_field_rtx_def): Do not handle it.
1125         * gengenrtl.c (type_from_format): Likewise.
1126         (accessor_from_format): Likewise.
1127
1128 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
1129
1130         * dbgcnt.c: Include toplev.h instead of errors.h.
1131         * ira-emit.c: Don't include errors.h.
1132         * ira.c: Include toplev.h instead of errors.h.
1133         * lto-compress.c: Include toplev.h instead of errors.h.
1134         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
1135         ira.o, dbgcnt.o): Update dependencies.
1136
1137 2010-05-22  Richard Guenther  <rguenther@suse.de>
1138
1139         * gimple.c (gimple_types_compatible_p): Check type qualifications
1140         before merging pointer to complete and pointer to incomplete type.
1141         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
1142         we use our own resolution algorithm.  The gold linker plugin
1143         doesn't do the job we want it to do here.
1144
1145 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
1146
1147         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
1148         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
1149         (sparc_mode_dependent_address_p): New function.
1150
1151 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1152
1153         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
1154
1155         * timevar.c: Do not include any core headers.
1156         (timevar_print): De-i18n-ize.
1157         (print_time): Likewise.
1158         * timevar.h (timevar_push, timevar_pop): Make inline functions.
1159
1160 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
1161
1162         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
1163         langhooks-def.h.
1164         (diagnostic_initialize): Initialize x_data not last_function.
1165         (diagnostic_report_current_function): Move to tree-diagnostic.c.
1166         (default_diagnostic_starter): Call
1167         diagnostic_report_current_module not
1168         diagnostic_report_current_function.
1169         (diagnostic_report_diagnostic): Initialize x_data not
1170         abstract_origin.
1171         (verbatim): Likewise.
1172         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
1173         x_data.
1174         (struct diagnostic_context): Change last_function to x_data.
1175         (diagnostic_auxiliary_data): Replace with
1176         diagnostic_context_auxiliary_data and
1177         diagnostic_info_auxiliary_data.
1178         (diagnostic_last_function_changed, diagnostic_set_last_function,
1179         diagnostic_report_current_function): Move to tree-diagnostic.h.
1180         (print_declaration, dump_generic_node, print_generic_stmt,
1181         print_generic_stmt_indented, print_generic_expr,
1182         print_generic_decl, debug_c_tree, dump_omp_clauses,
1183         print_call_name, debug_generic_expr, debug_generic_stmt,
1184         debug_tree_chain, default_tree_printer): Move to
1185         tree-pretty-print.h.
1186         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
1187         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
1188         gimple-pretty-print.h.
1189         * pretty-print.c: Don't include tree.h
1190         (pp_base_format): Don't handle %K here.
1191         (pp_base_tree_identifier): Move to tree-pretty-print.c.
1192         * pretty-print.h (text_info): Change abstract_origin to x_data.
1193         (pp_tree_identifier, pp_unsupported_tree,
1194         pp_base_tree_identifier): Move to tree-pretty-print.h.
1195         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
1196         tree-pretty-print.h: New files.
1197         * tree-pretty-print.c: Include tree-pretty-print.h.
1198         (percent_K_format): New.  Moved from pretty-print.c.
1199         (pp_base_tree_identifier): Move from pretty-print.c.
1200         * c-objc-common.c: Include tree-pretty-print.h.
1201         (c_tree_printer): Handle %K here.
1202         * langhooks.c: Include tree-diagnostic.h.
1203         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
1204         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
1205         (default_tree_printer): Handle %K using percent_K_format.
1206         (general_init): Use default_tree_diagnostic_starter.
1207         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
1208         (free_lang_data): Use default_tree_diagnostic_starter.
1209         * c-pretty-print.c: Include tree-pretty-print.h.
1210         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1211         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1212         * dwarf2out.c: Include tree-pretty-print.h.
1213         * except.c: Include tree-pretty-print.h.
1214         * gimple-pretty-print.c: Include tree-pretty-print.h and
1215         gimple-pretty-print.h.
1216         * gimplify.c: Include tree-pretty-print.h.
1217         * graphite-poly.c: Include tree-pretty-print.h and
1218         gimple-pretty-print.h.
1219         * ipa-cp.c: Include tree-pretty-print.h.
1220         * ipa-inline.c: Include gimple-pretty-print.h.
1221         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1222         * ipa-pure-const.c: Include gimple-pretty-print.h.
1223         * ipa-struct-reorg.c: Include tree-pretty-print.h and
1224         gimple-pretty-print.h.
1225         * ipa-type-escape.c: Include tree-pretty-print.h.
1226         * print-rtl.c: Include tree-pretty-print.h.
1227         * print-tree.c: Include gimple-pretty-print.h.
1228         * sese.c: Include tree-pretty-print.h.
1229         * tree-affine.c: Include tree-pretty-print.h.
1230         * tree-browser.c: Include tree-pretty-print.h.
1231         * tree-call-cdce.c: Include gimple-pretty-print.h.
1232         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1233         * tree-chrec.c: Include tree-pretty-print.h.
1234         * tree-data-ref.c: Include tree-pretty-print.h and
1235         gimple-pretty-print.h.
1236         * tree-dfa.c: Include tree-pretty-print.h.
1237         * tree-if-conv.c: Include tree-pretty-print.h and
1238         gimple-pretty-print.h.
1239         * tree-inline.c: Include tree-pretty-print.h.
1240         * tree-into-ssa.c: Include tree-pretty-print.h and
1241         gimple-pretty-print.h.
1242         * tree-nrv.c: Include tree-pretty-print.h.
1243         * tree-object-size.c: Include tree-pretty-print.h and
1244         gimple-pretty-print.h.
1245         * tree-outof-ssa.c: Include tree-pretty-print.h and
1246         gimple-pretty-print.h.
1247         * tree-parloops.c: Include tree-pretty-print.h and
1248         gimple-pretty-print.h.
1249         * tree-predcom.c: Include tree-pretty-print.h and
1250         gimple-pretty-print.h.
1251         * tree-scalar-evolution.c: Include tree-pretty-print.h and
1252         gimple-pretty-print.h.
1253         * tree-sra.c: Include tree-pretty-print.h.
1254         * tree-ssa-address.c: Include tree-pretty-print.h.
1255         * tree-ssa-alias.c: Include tree-pretty-print.h.
1256         * tree-ssa-ccp.c: Include tree-pretty-print.h and
1257         gimple-pretty-print.h.
1258         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
1259         * tree-ssa-copy.c: Include tree-pretty-print.h and
1260         gimple-pretty-print.h.
1261         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
1262         * tree-ssa-dce.c: Include tree-pretty-print.h and
1263         gimple-pretty-print.h.
1264         * tree-ssa-dom.c: Include tree-pretty-print.h and
1265         gimple-pretty-print.h.
1266         * tree-ssa-dse.c: Include gimple-pretty-print.h.
1267         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
1268         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
1269         * tree-ssa-live.c: Include tree-pretty-print.h and
1270         gimple-pretty-print.h.
1271         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
1272         gimple-pretty-print.h.
1273         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
1274         gimple-pretty-print.h.
1275         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
1276         gimple-pretty-print.h.
1277         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
1278         gimple-pretty-print.h.
1279         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
1280         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
1281         * tree-ssa-operands.c: Include tree-pretty-print.h and
1282         gimple-pretty-print.h.
1283         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
1284         gimple-pretty-print.h.
1285         * tree-ssa-pre.c: Include tree-pretty-print.h and
1286         gimple-pretty-print.h.
1287         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
1288         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
1289         gimple-pretty-print.h.
1290         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
1291         gimple-pretty-print.h.
1292         * tree-ssa-sink.c: Include gimple-pretty-print.h.
1293         * tree-ssa-ter.c: Include tree-pretty-print.h and
1294         gimple-pretty-print.h.
1295         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
1296         * tree-ssa.c: Include tree-pretty-print.h and
1297         gimple-pretty-print.h.
1298         * tree-stdarg.c: Include gimple-pretty-print.h.
1299         * tree-switch-conversion.c: Include gimple-pretty-print.h.
1300         * tree-tailcall.c: Include tree-pretty-print.h and
1301         gimple-pretty-print.h.
1302         * tree-vect-data-refs.c: Include tree-pretty-print.h and
1303         gimple-pretty-print.h.
1304         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
1305         gimple-pretty-print.h.
1306         * tree-vect-loop.c: Include tree-pretty-print.h and
1307         gimple-pretty-print.h.
1308         * tree-vect-patterns.c: Include gimple-pretty-print.h.
1309         * tree-vect-slp.c: Include tree-pretty-print.h and
1310         gimple-pretty-print.h.
1311         * tree-vect-stmts.c: Include tree-pretty-print.h and
1312         gimple-pretty-print.h.
1313         * tree-vectorizer.c: Include tree-pretty-print.h.
1314         * tree-vrp.c: Include tree-pretty-print.h and
1315         gimple-pretty-print.h.
1316         * value-prof.c: Include tree-pretty-print.h and
1317         gimple-pretty-print.h.
1318         * var-tracking.c: Include tree-pretty-print.h.
1319         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
1320         (tree-diagnostic.o): New dependencies.
1321         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
1322         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
1323         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
1324         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
1325         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
1326         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
1327         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
1328         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
1329         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
1330         tree-ssa-address.o, tree-ssa-loop-niter.o,
1331         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
1332         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
1333         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
1334         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
1335         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
1336         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
1337         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
1338         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
1339         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
1340         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
1341         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
1342         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
1343         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
1344         tree-switch-conversion.o, var-tracking.o, value-prof.o,
1345         cfgexpand.o, pretty-print.o): Update dependencies.
1346
1347 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
1348
1349         * tree-ssa-structalias.c: Remove tm_p.h from include.
1350
1351 2010-05-21  Jeff Law  <law@redhat.com>
1352
1353         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
1354
1355 2010-05-21  Jason Merrill  <jason@redhat.com>
1356
1357         * tree-eh.c (cleanup_is_dead_in): New.
1358         (lower_try_finally): Don't generate a dead cleanup region.
1359         (lower_cleanup): Likewise.
1360
1361 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
1362
1363         PR debug/44223
1364         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
1365         unchain each use from the cyclic next_regno_use chain first.
1366
1367 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1368
1369         * real: Do not include gmp.h, mpfr.h, and mpc.h.
1370         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
1371         (real_value_negate, real_value_abs): New prototypes.
1372         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
1373         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
1374         new include file for interface between MPFR and REAL_VALUE_TYPE.
1375         * real.c: Include realmpfr.h.
1376         (real_arithmetic2): Remove legacy function.
1377         (real_value_negate): New.
1378         (real_value_abs): New.
1379         (mfpr_from_real, real_from_mpfr): Move from here...
1380         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
1381         * builtins.c: Include realmpfr.h.
1382         * fold-const.c: Include realmpfr.h.
1383         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
1384         (fold_negate_const): Likewise.
1385         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
1386         * toplev.c: Include realmpfr.h.
1387         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
1388         and real_value_negate.
1389         * fixed-value.c (check_real_for_fixed_mode): Likewise.
1390         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
1391         (vfp3_const_double_index): Likewise.
1392         (arm_print_operand): Likewise.
1393         * Makefile.in: Update dependencies.
1394
1395 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1396
1397         * config/s390/s390.c (override_options): Increase the default
1398         of max-completely-peel-times.
1399
1400 2010-05-21  Julian Brown  <julian@codesourcery.com>
1401             Mark Mitchell  <mark@codesourcery.com>
1402
1403         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
1404         sibling calls for Thumb-1.
1405         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
1406         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
1407         Thumb-2.
1408         (*call_insn, *call_value_insn): Don't use for Thumb-2.
1409         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
1410         for Thumb-2.
1411         (return): New expander.
1412         (*arm_return): New name for ARM return insn.
1413         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
1414
1415 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
1416
1417         * config.gcc (sparc64-*-rtems*): New target.
1418
1419 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
1420
1421         * tree.c (build_function_decl_skip_args): Fix grammar.
1422         (build_function_type_list_1): Fix typos, adjust formatting.
1423
1424 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1425
1426         * tree.h: Include real.h and fixed-value.h as basic datatypes.
1427         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
1428         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
1429         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
1430         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
1431         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
1432         tree-pretty-print.c, tree-loop-distribution.c,
1433         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
1434         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
1435         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
1436         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
1437         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
1438         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
1439         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
1440         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
1441         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
1442         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
1443         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
1444         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
1445         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
1446         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
1447         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
1448         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
1449         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
1450         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
1451         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
1452         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
1453         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
1454         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
1455         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
1456         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
1457         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
1458         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
1459         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
1460         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
1461         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
1462         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
1463         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
1464         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
1465         config/score/score7.c, config/score/score.c, config/arm/arm.c,
1466         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
1467         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
1468         config/bfin/bfin.c: Clean up redundant includes.
1469         * Makefile.in: Update accordingly.
1470
1471 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
1472
1473         PR middle-end/44204
1474         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
1475         statement has no arguments.
1476
1477 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
1478
1479         PR/44139
1480         * varasm.c (emutls_decl): Merge attributes to new decl.
1481
1482 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1483
1484         PR middle-end/44101
1485         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
1486         around the uniquized constructor if its type requires a conversion.
1487
1488 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
1489
1490         PR debug/44205
1491         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
1492         at -O0 goto_locus of any of the incoming edges differs from
1493         goto_locus of outgoing edge, or gimple_location of any of the
1494         labels differs.
1495
1496 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
1497
1498         * ira.c (ira_non_ordered_class_hard_regs): Define.
1499         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
1500         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
1501         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
1502         cost of unaligned hard regs when allocating multi-reg pseudos.
1503
1504 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
1505
1506         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
1507         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
1508         for TARGET_NO_FLOAT.
1509         * config/mips/mips.c (mips_file_start): Expand conditional expression
1510         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
1511         (mips_override_options): Move -mno-float override -msoft-float and
1512         -mhard-float.
1513         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
1514         Condition(TARGET_SUPPORTS_NO_FLOAT).
1515         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
1516         __mips_no_float here.
1517         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
1518         (TARGET_SUPPORTS_NO_FLOAT): Define.
1519         * config/mips/sdemtk.opt: Delete.
1520
1521 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
1522
1523         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
1524
1525 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
1526
1527         PR target/43733
1528         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
1529         * configure: Regenerate.
1530         * config.in: Regenerate.
1531         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
1532         instead of sahf only for 64bit targets.
1533
1534 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
1535
1536         PR debug/44178
1537         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
1538         setup_ref_regs for DEBUG_INSNs.
1539
1540 2010-05-20  Jan Hubicka  <jh@suse.cz>
1541
1542         PR middle-end/44197
1543         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
1544
1545 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
1546
1547         PR bootstrap/43870
1548         * df-scan.c (df_ref_compare): Stabilize sort.
1549
1550 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
1551
1552         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
1553         argument.  Don't use DW_OP_piece if offset is non-zero,
1554         put offset into second DW_OP_bit_piece argument.
1555         (dw_sra_loc_expr): Adjust callers.  For memory expressions
1556         compute offset.
1557
1558 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
1559
1560         PR target/44202
1561         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
1562         settings for 16-bit-constant "addo" alternative.
1563
1564 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
1565
1566         * config/mips/mips-dsp.md (add<DSPV:mode>3,
1567         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
1568
1569         PR target/43764
1570         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
1571         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
1572         Use it.
1573
1574 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
1575
1576         * diagnostic.c (FLOAT, FFS): Don't undefine.
1577         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
1578         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
1579         include ordering.
1580
1581 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
1582
1583         * combine.c (propagate_for_debug): Call make_compound_operation
1584         on the source value.
1585         (try_combine): When implementing a split chosen by find_split_point,
1586         either copy i2src or set it to null.  Assert that i2src is not null
1587         before substituting into CALL_INSN_FUNCTION_USAGE.
1588
1589 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
1590
1591         * double-int.h (double_int_ior): New function.
1592         * tree.h (build_int_cst_wide_type): Remove.
1593         * tree.c (build_int_cst_wide_type): Remove.
1594         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
1595         of build_int_cst_wide_type.
1596         * stor-layout.c (set_sizetype): (Ditto.).
1597         * dojump.c (do_jump): Use build_int_cstu instead of
1598         build_int_cst_wide_type.
1599
1600 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
1601
1602         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
1603         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
1604         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
1605         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
1606         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
1607         propagate the 'data' argument to copy_tree_r.
1608         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
1609         Propagate 'data' argument to walk_tree.
1610         (copy_if_shared): New function.
1611         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
1612         (unmark_visited): New function.
1613         (unshare_body): Call copy_if_shared instead of doing it manually.
1614         (unvisit_body): Call unmark_visited instead of doing it manually.
1615
1616 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
1617
1618         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
1619         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
1620         * hooks.c: Likewise.
1621         * target-def.h (TARGET_FOLD_BUILTIN): Define to
1622         hook_tree_tree_int_treep_bool_null.
1623         * target.h (struct gcc_target): Update signature of fold_builtin
1624         field.
1625         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
1626         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
1627         instead of the call expression.
1628         (fold_builtin_call_array): Pass n and argarray directly.
1629         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
1630         consing a list.
1631         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
1632         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
1633         `i' and use it in place of `arity'.
1634         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
1635         Dereference `args' directly.
1636         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
1637
1638 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1639
1640         * doc/sourcebuild.texi (Effective-Target Keywords): Document
1641         3dnow, sse3, sse2.
1642         (Directives): Document optional dg-require-effective-target
1643         selector.
1644
1645 2010-05-19  Richard Guenther  <rguenther@suse.de>
1646
1647         PR lto/44196
1648         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
1649
1650 2010-05-19  Richard Guenther  <rguenther@suse.de>
1651
1652         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
1653         * common.opt (fwhopr=): New.
1654         * opts.c (common_handle_option): Handle OPT_fwhopr.
1655         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
1656         * collect2.c (main): Match -fwhopr*.
1657         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
1658         Execute ltrans stage in parallel when jobs is bigger than 1.
1659
1660 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1661
1662         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
1663         pentiumpro on Solaris 8/x86 with Sun as.
1664         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
1665         hidden alias bug.
1666         (gcc_cv_as_ix86_quad): Check for .quad directive.
1667         * configure: Regenerate.
1668         * config.in: Regenerate.
1669         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
1670
1671 2010-05-19  Martin Jambor  <mjambor@suse.cz>
1672
1673         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
1674         also for indirect edges.  Actual printing moved...
1675         (ipa_print_node_jump_functions_for_edge): ...here.
1676         (ipa_compute_jump_functions): Renamed to
1677         ipa_compute_jump_functions_for_edge and made static.
1678         (ipa_compute_jump_functions): New function.
1679         (make_edge_direct_to_target): Check if the number of arguments on
1680         the newly direct edge is the same as the number of parametrs of
1681         the callee.
1682         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
1683         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
1684         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
1685         analysis functions unconditionally, call the new
1686         ipa_analyze_params_uses on the node instead of every edge.
1687
1688 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
1689
1690         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
1691         to tree.
1692         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
1693         also checks for a constant int vs.  non-constant but
1694         loop-invariant steps.
1695         (find_or_create_group): Change the sort algorithm to only consider
1696         steps that are constant ints.
1697         (idx_analyze_ref): Adopt code to handle a tree instead of a
1698         HOST_WIDE_INT for step.
1699         (gather_memory_references_ref): Handle tree instead of int and be
1700         prepared to see a NULL_TREE.
1701         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
1702         prefetches if the step cannot be calculated at compile time.
1703         (issue_prefetch_ref): Issue prefetches for non-constant but
1704         loop-invariant steps.
1705
1706 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1707
1708         Revert:
1709         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1710
1711         * tree.h (build_call_list): Remove.
1712         * tree.c (build_call_list): Remove.
1713
1714 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1715
1716         * tree.h (build_call_list): Remove.
1717         * tree.c (build_call_list): Remove.
1718
1719 2010-05-18  Jan Hubicka  <jh@suse.cz>
1720
1721         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
1722
1723 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
1724
1725         PR rtl-optimization/43332
1726         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
1727
1728 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
1729
1730         * tree.h (build_int_cstu): Implement as static inline.
1731         * tree.c (build_int_cstu): Remove function.
1732         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
1733         sign extended.
1734
1735 2010-05-18  Richard Guenther  <rguenther@suse.de>
1736
1737         PR lto/44143
1738         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
1739         (debug): Initialize from -save-temps.
1740         (collect_execute): Print command-line when verbose.
1741         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
1742         for ltrans invocation.  Produce -dumpbase flag again.
1743         (process_args): Remove.
1744         (main): Simplify.
1745         * collect2.c (maybe_run_lto_and_relink): Only pass object
1746         files to lto-wrapper.
1747         * gcc.c (LINK_COMMAND_SPEC): Likewise.
1748
1749 2010-05-18  Jan Hubicka  <jh@suse.cz>
1750
1751         * opts.c (decode_options): Do not disable whopr at ipa_cp.
1752         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
1753
1754 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
1755
1756         PR lto/44184
1757         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
1758         in a GIMPLE_ASM.
1759         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
1760         in a GIMPLE_ASM.
1761
1762 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
1763
1764         PR debug/41371
1765         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
1766         rtx_equal_p inline.
1767
1768 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
1769
1770         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
1771         lto-macho as lto_binary_reader.
1772
1773         * darwin.c (darwin_asm_named_section): Do not add assembler comment
1774         after .section directive; just print it before the directive instead.
1775
1776 2010-05-17  Jan Hubicka  <jh@suse.cz>
1777
1778         * cgraph.c (cgraph_create_virtual_clone): Only check
1779         versionable_function_p when not in wpa and checking is enabled.
1780         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
1781         there are no more functions to materialize.
1782
1783 2010-05-17  Jan Hubicka  <jh@suse.cz>
1784
1785         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
1786         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
1787         New functions.
1788         (output_cgraph): Call output_cgraph_opt_summary.
1789         (input_cgrpah): Call input_cgraph_opt_summary.
1790         (output_cgraph_opt_summary_p, output_node_opt_summary,
1791         input_node_opt_summary, input_cgraph_opt_section): New functions.
1792         * lto-section-in.c (lto_section_name): Add cgraphopt.
1793         * tree-inline.c (tree_function_versioning): Handle parm_num.
1794         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
1795         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
1796
1797 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
1798
1799         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
1800         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
1801         the insn to prefetch ratio heuristic to loops with known trip count.
1802
1803 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
1804
1805         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
1806         (schedule_prefetches): Do not generate a prefetch if the unroll factor
1807         is far from what is required by the prefetch.
1808
1809 2010-05-17  Jan Hubicka  <jh@suse.cz>
1810
1811         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
1812         (ipcp_estimate_growth): Likewise.
1813         (ipcp_const_param_count): Likewise.
1814         (ipcp_insert_stage): Likewise.
1815         * ipa-prop.c (visit_load_for_mod_analysis): New function.
1816         (visit_store_addr_for_mod_analysis): Set used flag.
1817         (ipa_detect_param_modifications): Set used flag for SSE params;
1818         update use of walk_stmt_load_store_addr_ops.
1819         (ipa_print_node_params): Print used flag.
1820         (ipa_write_node_info): Stream used flag.
1821         (ipa_read_node_info): Likewise.
1822         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
1823         (ipa_is_param_used): New function.
1824         (lto_ipa_fixup_call_notes): Remove unused declaration.
1825
1826 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1827
1828         PR target/44074
1829         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
1830         * configure: Regenerate.
1831         * config.in: Regenerate.
1832         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
1833         !HAVE_AS_IX86_REP_LOCK_PREFIX.
1834         Don't emit whitespace.
1835         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
1836         (*rep_movsi): Likewise.
1837         (*rep_movsi_rex64): Likewise.
1838         (*rep_movqi): Likewise.
1839         (*rep_movqi_rex64): Likewise.
1840         (*rep_stosdi_rex64): Likewise.
1841         (*rep_stossi): Likewise.
1842         (*rep_stossi_rex64): Likewise.
1843         (*rep_stosqi): Likewise.
1844         (*rep_stosqi_rex64): Likewise.
1845         (*cmpstrnqi_nz_1): Use {%;} after repz.
1846         (*cmpstrnqi_nz_rex_1): Likewise.
1847         (*cmpstrnqi_1): Likewise.
1848         (*cmpstrnqi_rex_1): Likewise.
1849         (*strlenqi_1): Use {%;} after repnz.
1850         (*strlenqi_rex_1): Likewise.
1851         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
1852         (*sync_compare_and_swap<mode>): Likewise.
1853         (sync_double_compare_and_swap<mode>): Likewise.
1854         (*sync_double_compare_and_swapdi_pic): Likewise.
1855         (sync_old_add<mode>): Likewise.
1856         (sync_add<mode>): Likewise.
1857         (sync_sub<mode>): Likewise.
1858         (sync_<code><mode>): Likewise.
1859
1860 2010-05-17  Martin Jambor  <mjambor@suse.cz>
1861
1862         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
1863         otr_token and polymorphic.
1864         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
1865         (cgraph_clone_edge): Copy the above fields.
1866         * tree.c (get_binfo_at_offset): New function.
1867         * tree.h (get_binfo_at_offset): Declare.
1868         * ipa-prop.h (enum jump_func_type): Added known_type jump function
1869         type, reordered items, updated comments.
1870         (union jump_func_value): Added base_type field, reordered fields.
1871         (enum ipa_lattice_type): Moved down in the file.
1872         (struct ipa_param_descriptor): New field polymorphic.
1873         (ipa_is_param_polymorphic): New function.
1874         * ipa-prop.c: Include gimple.h and gimple-fold.h.
1875         (ipa_print_node_jump_functions): Print known type jump functions.
1876         (compute_complex_pass_through): Renamed to...
1877         (compute_complex_assign_jump_func): this.
1878         (compute_complex_ancestor_jump_func): New function.
1879         (compute_known_type_jump_func): Likewise.
1880         (compute_scalar_jump_functions): Create known type and complex ancestor
1881         jump functions.
1882         (ipa_note_param_call): New parameter polymorphic, set the corresponding
1883         flag in the call note accordingly.
1884         (ipa_analyze_call_uses): Renamed to...
1885         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
1886         variable var only in the block where it is used.
1887         (ipa_analyze_virtual_call_uses): New function.
1888         (ipa_analyze_call_uses): Likewise.
1889         (combine_known_type_and_ancestor_jfs): Likewise.
1890         (update_jump_functions_after_inlining): Implemented handling of a
1891         number of new jump function types combination.
1892         (print_edge_addition_message): Removed.
1893         (make_edge_direct_to_target): New function.
1894         (try_make_edge_direct_simple_call): Likewise.
1895         (try_make_edge_direct_virtual_call): Likewise.
1896         (update_call_notes_after_inlining): Renamed to...
1897         (update_indirect_edges_after_inlining): this.  Moved edge creation for
1898         indirect calls to try_make_edge_direct_simple_call, also calls
1899         try_make_edge_direct_virtual_call for virtual calls.
1900         (ipa_print_node_params): Changed the header message.
1901         (ipa_write_jump_function): Stream also known type jump functions.
1902         (ipa_read_jump_function): Likewise.
1903         (ipa_write_indirect_edge_info): Stream new fields in
1904         cgraph_indirect_call_info.
1905         (ipa_read_indirect_edge_info): Likewise.
1906         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
1907         GIMPLE_FOLD_H.
1908
1909 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1910
1911         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
1912
1913 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
1914
1915         * tree.h (CALL_EXPR_ARGS): Delete.
1916         (call_expr_arglist): Delete.
1917         * tree.c (call_expr_arglist): Delete.
1918         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
1919         targetm.fold_builtin.
1920         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
1921         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
1922         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
1923         arglist parameter.  Use CALL_EXPR_ARG.
1924         (picochip_expand_builtin_3op): Likewise.
1925         (picochip_expand_builtin_2opvoid): Likewise.
1926         (picochip_expand_array_get): Likewise.
1927         (picochip_expand_array_put): Likewise.
1928         (picochip_expand_array_testport): Likewise.
1929         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
1930         rather than arglist.
1931         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
1932         CALL_EXPR_ARGS.
1933         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
1934         than TREE_VALUE and TREE_CHAIN.
1935         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
1936         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
1937         the arglist.
1938
1939 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
1940
1941         PR bootstrap/42347
1942         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
1943         to have no fallthru edge.
1944
1945         PR middle-end/44102
1946         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
1947         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
1948         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
1949         add BARRIER after previous bb if needed.
1950
1951 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
1952
1953         * tree.c (build_function_type_list_1): Remove bogus assert condition.
1954
1955 2010-05-17  Alan Modra  <amodra@gmail.com>
1956
1957         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
1958         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
1959         with copy_reg rtx param.
1960         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
1961         Correct cases where code for ABI_V4 did not initialise the reg
1962         used to access frame.  Also leave frame_reg_rtx as sp for large
1963         frames that save no regs.
1964
1965 2010-05-17  Martin Jambor  <mjambor@suse.cz>
1966
1967         PR middle-end/44133
1968         * tree-sra.c (create_access_replacement): New parameter rename, mark
1969         the replaement for renaming only when it is true.
1970         (get_access_replacement): Pass true in the rename parameter of
1971         create_access_replacement.
1972         (get_unrenamed_access_replacement): New function.
1973         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
1974         replacement declaration from it.
1975
1976 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
1977
1978         * function.c (try_fit_stack_local, add_frame_space): New static
1979         functions.
1980         (assign_stack_local_1): Use them.  Look for opportunities to use
1981         space previously wasted on alignment.
1982         * function.h (struct frame_space): New.
1983         (struct rtl_data): Add FRAME_SPACE_LIST member.
1984         * reload1.c (something_was_spilled): New static variable.
1985         (alter_reg): Set it.
1986         (reload): Test it in addition to testing if the frame size changed.
1987
1988 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
1989
1990         * config/s390/s390.c: Define sane prefetch settings and activate
1991         flag_prefetch_loop_arrays on -O3.
1992         * config/s390/s390.h: Declare that read can use write prefetch.
1993
1994 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
1995
1996         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
1997         build.
1998
1999 2010-05-16  Jan Hubicka  <jh@suse.cz>
2000
2001         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
2002         function body; do not check stdarg field of struct function.
2003
2004 2010-05-16  Jan Hubicka  <jh@suse.cz>
2005
2006         * cgraph.c (dump_cgraph_node): Dump versionable flag.
2007         * cgraph.h (cgraph_local_info): Add versionable flag.
2008         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
2009         (ipcp_versionable_function_p): Use it.
2010         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
2011         versionable flag.
2012
2013 2010-05-16  Jan Hubicka  <jh@suse.cz>
2014
2015         * cgraph.c (cgraph_clone_node): Take decl argument and insert
2016         clone into hash when it is different from orig.
2017         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
2018         * cgraph.h (cgraph_clone_node): Update prototype.
2019         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
2020         (lto_cgraph_encoder_delete): Delete body map.
2021         (lto_cgraph_encoder_size): Move to header.
2022         (lto_cgraph_encoder_encode_body_p,
2023         lto_set_cgraph_encoder_encode_body): New.
2024         (lto_output_node): Do not take written_decls argument; output clone_of
2025         pointer.
2026         (add_node_to): Add include_body_argument; call
2027         lto_set_cgraph_encoder_encode_body on master of the clone.
2028         (add_references): Update use of add_node_to.
2029         (compute_ltrans_boundary): Likewise.
2030         (output_cgraph): Do not create written_decls bitmap.
2031         (input_node): Take nodes argument; stream in clone_of correctly.
2032         (input_cgraph_1): Update use of input_node.
2033         * lto-streamer-out.c (lto_output): Use encoder info to decide
2034         what bodies to output.
2035         * ipa-inline.c (cgraph_clone_inlined_nodes,
2036         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
2037         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
2038         (lto_cgraph_encoder_size): Define here.
2039         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
2040         Declare.
2041
2042 2010-05-16  Richard Guenther  <rguenther@suse.de>
2043
2044         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
2045         -fipa-type-escape.
2046         * ipa-type-escape.c (gate_type_escape_vars): Run when
2047         -fipa-struct-reorg runs.
2048         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
2049         * common.opt (fipa-type-escape): Remove.
2050
2051 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
2052
2053         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
2054         (decode_options): Likewise.
2055         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
2056
2057 2010-05-16  Jan Hubicka  <jh@suse.cz>
2058
2059         * ipa.c (function_and_variable_visibility): Also bring local all
2060         aliases.
2061
2062 2010-05-16  Richard Guenther  <rguenther@suse.de>
2063
2064         * alias.c (nonoverlapping_memrefs_p): Remove use of
2065         IPA type-escape information.
2066
2067 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
2068
2069         * c-common.c (c_common_reswords): Add _Static_assert for C.
2070         * c-parser.c (c_token_starts_declaration,
2071         c_parser_next_token_starts_declaration,
2072         c_parser_static_assert_declaration_no_semi,
2073         c_parser_static_assert_declaration): New.
2074         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
2075         Handle static assertions if static_assert_ok.
2076         (c_parser_external_declaration, c_parser_declaration_or_fndef,
2077         c_parser_compound_statement_nostart, c_parser_label,
2078         c_parser_for_statement, c_parser_objc_methodprotolist,
2079         c_parser_omp_for_loop): All callers of
2080         c_parser_declaration_or_fndef changed.
2081         (c_parser_struct_declaration): Handle static assertions.
2082         (c_parser_compound_statement_nostart): Use
2083         c_parser_next_token_starts_declaration and
2084         c_token_starts_declaration to detect start of declarations.
2085         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
2086         Likewise.
2087
2088 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
2089
2090         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
2091         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
2092         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
2093         TARGET_FUNCTION_VALUE_REGNO_P): Define.
2094         (mmix_function_outgoing_value): Rename to...
2095         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
2096         (mmix_function_value_regno_p): Make static.
2097         (mmix_libcall_value): New function.
2098         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
2099         mmix_function_value_regno_p): Remove declaration.
2100
2101 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
2102
2103         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
2104         BUILT_IN_ALLOCA if stack checking is enabled.
2105
2106 2010-05-16  Richard Guenther  <rguenther@suse.de>
2107
2108         * var-tracking.c (vars_copy_1): Inline ...
2109         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
2110         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
2111         (variable_merge_over_cur): Adjust.  Merge asserts.
2112         (variable_merge_over_src): Likewise.
2113         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
2114         (variable_post_merge_new_vals): Merge asserts.
2115         (variable_post_merge_perm_vals): Likewise.
2116         (find_mem_expr_in_1pdv): Likewise.
2117         (dataflow_set_different_value): Remove.
2118         (onepart_variable_different_p): Merge asserts.
2119         (variable_different_p): Likewise.
2120         (dataflow_set_different_1): Inline ...
2121         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
2122         (emit_notes_for_differences_1): Merge asserts.
2123
2124 2010-05-16  Richard Guenther  <rguenther@suse.de>
2125
2126         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
2127         * optabs.c (libfunc_decl_hash): Likewise.
2128         * varasm.c (emutls_decl): Likewise.
2129
2130 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
2131
2132         * c-decl.c: Don't include gimple.h.
2133         (merge_decls): Do not copy gimple_body.
2134
2135 2010-05-15  Jason Merrill  <jason@redhat.com>
2136
2137         * c.opt: Add -fnothrow-opt.
2138
2139 2010-05-15  Jan Hubicka  <jh@suse.cz>
2140
2141         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
2142         analyzed.
2143         * passes.c (ipa_write_summaries): Write all analyzed nodes.
2144
2145 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
2146
2147         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
2148         * Makefile.in: Add it.
2149         Fix all other Makefile dependencies for changes below.
2150         * tree.h: Include it instead of defining VEC primitives here.
2151         * gimple.h: Likewise.
2152         * rtl.h: Likewise.
2153         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
2154         * except.h: Include vecir.h, break dependence on tree.h.
2155
2156         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
2157         Move from here...
2158         * tree-iterator.c: ...to here.
2159         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
2160
2161         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
2162         tm_p.h.
2163         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
2164         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
2165         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
2166         tree-mudflap.h, and target.h.
2167         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
2168         predict.h, tree-inline.h, gimple.h, and langhooks.h.
2169         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
2170         Add FIXME for why gimple.h is still included (should be unnecessary
2171         since GCC 4.5 gimplification unit-at-a-time).
2172         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
2173         * c-pragma.c: Add FIXME for why function.h needs to be included just
2174         for cfun, at front-end level.
2175         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
2176         Do not include ggc.h, but include vecprim.h for VEC(char).
2177         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
2178         Explain why target.h is included.
2179         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
2180         Explain why gimple.h is included.
2181         * c-ppoutput.c: Do not include tm.h.
2182         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
2183         * c-parses.c: Explain why rtl.h is included, and that this (and only
2184         this) is also why tm.h must be included.
2185         Do not include except.h.
2186         * c-lang.c: Do not include ggc.h.
2187
2188 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
2189
2190         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
2191
2192 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
2193
2194         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
2195         unions by default if those structs and unions have no tags.  Do
2196         not condition anonymous struct and unions handling on flag_iso.
2197         Allow anonymous structs and unions for C1X.
2198         (finish_struct): Do not diagnose lack of named fields when
2199         anonymous structs and unions present for C1X.  Accept flexible
2200         array members in structure with anonymous structs or unions but no
2201         directly named fields.
2202         * doc/extend.texi (Unnamed Fields): Update.
2203
2204 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
2205
2206         * gimple.h (compare_field_offset): Rename into...
2207         (gimple_compare_field_offset): ...this.
2208         * gimple.c (compare_field_offset): Rename into...
2209         (gimple_compare_field_offset): ...this.  Compare the full access if
2210         the offset is self-referential.
2211         (gimple_types_compatible_p): Adjust for above renaming.
2212         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
2213         DECL_NONADDRESSABLE_P flag of fields before merging them.
2214
2215 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
2216
2217         * tree.h (ctor_to_list): Delete.
2218         * tree.c (ctor_to_list): Delete.
2219
2220 2010-05-15  Jan Hubicka  <jh@suse.cz>
2221
2222         * ipa-reference.c: Include toplev.h
2223         (is_proper_for_analysis): Only add to all_module_statics
2224         if it is allocated.
2225         (write_node_summary_p, stream_out_bitmap,
2226         ipa_reference_write_optimization_summary,
2227         ipa_reference_read_optimization_summary): New.
2228         (struct ipa_opt_pass_d pass_ipa_reference): Add
2229         optimization summary streaming.
2230         * lto-cgraph.c (referenced_from_this_partition_p,
2231         reachable_from_this_partition_p): New functions.
2232         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2233         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
2234         * opts.c (decode_options): Enable ipa_reference.
2235         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
2236         * lto-streamer.h (referenced_from_this_partition_p,
2237         reachable_from_this_partition_p): Declare.
2238
2239 2010-05-15  Richard Guenther  <rguenther@suse.de>
2240
2241         PR tree-optimization/44038
2242         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
2243         taking the address of a V_C_E of a constant.
2244
2245 2010-05-14  Jan Hubicka  <jh@suse.cz>
2246
2247         * tree.h (memory_identifier_string): Remove.
2248         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
2249         (ipa_reference_global_vars_info_d): Remove statics_not_read and
2250         statics_not_written.
2251         (ipa_reference_optimization_summary_d): New structure.
2252         (ipa_reference_optimization_summary_t): New type and vector.
2253         (ipa_reference_vars_info_d): Embedd structures instead of using
2254         pointers.
2255         (reference_vars_to_consider): Remove out of GGC space.
2256         (module_statics_escape): Remove.
2257         (global_info_obstack): Rename to ...
2258         (optimization_summary_obstack): ... this one.
2259         (initialization_status_t): Remove.
2260         (memory_identifier_string): Remove.
2261         (get_reference_vars_info): Fix indenting.
2262         (set_reference_vars_info): Likewise.
2263         (get_reference_optimization_summary): New.
2264         (set_reference_optimization_summary): New.
2265         (get_global_reference_vars_info): Remove.
2266         (ipa_reference_get_read_global): Remove.
2267         (ipa_reference_get_written_global): Remove.
2268         (ipa_reference_get_not_read_global): Update.
2269         (ipa_reference_get_not_written_global): Update.
2270         (is_proper_for_analysis): Outlaw addressable.
2271         (propagate_bits): Update for new datastructures.
2272         (analyze_variable): Remove.
2273         (init_function_info): Update for new datastructures.
2274         (clean_function_local_data): Remove.
2275         (clean_function): Remove.
2276         (copy_global_bitmap): Use optimizations_summary_obstack.
2277         (duplicate_node_data): Duplicate optimization summary only.
2278         (remove_node_data): Remove optimization summary only.
2279         (generate_summary): Do not analyze variables; do not compute
2280         module_statics_escape; do not prune solutions by it.
2281         (read_write_all_from_decl): Fix typos in comments.
2282         (propagate): Doscover readonly and nonaddressable first;
2283         update for new datastructures; share global bitmaps.
2284         * ipa-reference.h (ipa_reference_get_read_global,
2285         ipa_reference_get_written_global): Remove.
2286         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
2287         * Makefile.in: Remove ipa-refereference from GT files.
2288
2289 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
2290
2291         PR debug/44112
2292         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
2293         for all SYMBOL_REF_DECLs.
2294
2295 2010-05-14  Jan Hubicka  <jh@suse.cz>
2296
2297         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
2298         (varpool_all_refs_explicit_p): New inline function.
2299         * ipa-reference.c: Update comment.
2300         (module_statics_written): Remove.
2301         (get_static_decl): Remove.
2302         (ipa_init): Do not initialize module_statics_written.
2303         (analyze_function): Likewise.
2304         (generate_summary): Likewise; do not compute module_statics_readonly
2305         and do not update variable flags.
2306         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
2307         * ipa.c: Inlucde flags.h
2308         (cgraph_local_node_p): New.
2309         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
2310         promote functions to local.
2311         (ipa_discover_readonly_nonaddressable_vars): New function.
2312         (function_and_variable_visibility): Use cgraph_local_node_p.
2313         * varpool.c (varpool_finalize_decl): Set force_output for
2314         DECL_PRESERVE_P vars.
2315
2316 2010-05-14  Jan Hubicka  <jh@suse.cz>
2317
2318         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
2319
2320 2010-05-14  Richard Guenther  <rguenther@suse.de>
2321
2322         PR tree-optimization/44119
2323         * tree-ssa-pre.c (eliminate): Properly mark replacement of
2324         a PHI node necessary.
2325
2326 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
2327
2328         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
2329
2330 2010-05-14  Jason Merrill  <jason@redhat.com>
2331
2332         PR c++/44127
2333         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
2334         (gimple_call_set_nothrow): New.
2335         * gimple.c (gimple_build_call_from_tree): Call it.
2336         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
2337
2338         PR c++/44127
2339         * gimplify.c (gimplify_seq_add_stmt): No longer static.
2340         * gimple.h: Declare it.
2341         * gimple.c (gimple_build_eh_filter): No ops.
2342
2343 2010-05-14  Jan Hubicka  <jh@suse.cz>
2344
2345         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
2346         nodes already in queue.
2347         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
2348         re-enqueueing node.
2349
2350 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
2351
2352         PR debug/44136
2353         * cfgexpand.c (expand_debug_expr): If non-memory op0
2354         has BLKmode, return NULL.
2355
2356 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
2357
2358         * config.gcc: Add support for --with-cpu option for bdver1.
2359         * config/i386/i386.h (TARGET_BDVER1): New macro.
2360         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
2361         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
2362         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
2363         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
2364         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
2365         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
2366         (processor_type): Add PROCESSOR_BDVER1.
2367         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
2368         processor_type in config/i386/i386.h.
2369         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
2370         movaps <reg, reg> instead of movapd <reg, reg> when replacing
2371         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
2372         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
2373         to emit packed xor instead of packed double/packed integer
2374         xor for SSE and AVX when moving a zero value.
2375         * config/i386/sse.md: Add check for
2376         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
2377         movapd/movdqa for SSE and AVX.
2378         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
2379         single logical operations i.e and, or and xor instead of packed double
2380         logical operations for SSE and AVX.
2381         * config/i386/i386-c.c (ix86_target_macros_internal):
2382         Add PROCESSOR_BDVER1.
2383         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
2384         (has_fma4, has_xop): New.
2385         * config/i386/i386.c (bdver1_cost): New variable.
2386         (m_BDVER1): New macro.
2387         (m_AMD_MULTIPLE): Add m_BDVER1.
2388         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
2389         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
2390         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
2391         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
2392         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
2393         x86_tune_sse_partial_reg_dependency,
2394         x86_tune_sse_unaligned_load_optimal,
2395         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
2396         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
2397         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
2398         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
2399         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
2400         Enable/disable for bdver1.
2401         (processor_target_table): Add bdver1_cost.
2402         (cpu_names): Add bdver1.
2403         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
2404          processor_alias_table.
2405         (ix86_expand_vector_move_misalign): Change.
2406         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
2407         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
2408         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
2409         of movupd/movdqu for SSE and AVX.
2410         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
2411         (ix86_tune_adjust_cost): Add code for bdver1.
2412         (standard_sse_constant_opcode): Add check for
2413         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
2414         of packed double xor for SSE and AVX.
2415
2416 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
2417
2418         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
2419         result to unsigned.
2420
2421 2010-05-14  Tristan Gingold  <gingold@adacore.com>
2422
2423         * toplev.c (default_debug_hooks): Remove this variable.
2424         (process_options): Remove assignments to default_debug_hooks.
2425
2426 2010-05-14  Martin Jambor  <mjambor@suse.cz>
2427
2428         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
2429         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
2430         * langhooks.h (struct lang_hooks_for_decls): Removed field
2431         fold_obj_type_ref.
2432         * tree.c (free_lang_data): Remove assignment to
2433         lang_hooks.fold_obj_type_ref.
2434         * tree.def (OBJ_TYPE_REF): Update comment.
2435
2436 2010-05-14  Richard Guenther  <rguenther@suse.de>
2437
2438         PR tree-optimization/44124
2439         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
2440
2441 2010-05-14  Alan Modra  <amodra@gmail.com>
2442
2443         PR target/44075
2444         * config/rs6000/rs6000.c (struct machine_function): Reorder
2445         fields for better packing.  Add lr_save_state.
2446         (rs6000_ra_ever_killed): Return lr_save_state if set.
2447         (rs6000_emit_eh_reg_restore): Set lr_save_state.
2448
2449 2010-05-13  Jan Hubicka  <jh@suse.cz>
2450
2451         * varpool.c (decide_is_variable_needed): Drop code checking
2452         TREE_SYMBOL_REFERENCED.
2453
2454 2010-05-13  Jan Hubicka  <jh@suse.cz>
2455
2456         * final.c (output_addr_const): Do not call mark_decl_referenced.
2457         * cgraphunit.c (process_function_and_variable_attributes): Use
2458         mark_needed_node dirrectly.
2459         (assemble_thunk): Do not call mark_decl_referenced.
2460
2461 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
2462
2463         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
2464
2465 2010-05-13  Jeff Law  <law@redhat.com>
2466
2467         * ira-conflicts.c (print_allocno_conflicts): New function broken out
2468         from...
2469         (print_conflicts): Call print_allocno_conflicts.
2470
2471 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2472
2473         PR debug/44104
2474         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
2475         if it is NULL.
2476
2477 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
2478
2479         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
2480         t-mingw-w64 or t-mingw-w32 for multilib configuration.
2481         * config/i386/t-mingw-w32: New.
2482         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
2483
2484 2010-05-13  Martin Jambor  <mjambor@suse.cz>
2485
2486         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
2487         gimple-fold.c).
2488         * gimple-fold.c (get_base_binfo_for_type): New function.
2489         (gimple_get_relevant_ref_binfo): Likewise.
2490         (gimple_fold_obj_type_ref_known_binfo): Likewise.
2491         (gimple_fold_obj_type_ref): Likewise.
2492         (fold_gimple_call): Simplify condition for folding virtual calls
2493         and call gimple_fold_obj_type_ref.
2494         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
2495         (gimple_fold_obj_type_ref_known_binfo): Likewise.
2496
2497 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
2498
2499         * config/rs6000/rs6000-protos.h
2500         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
2501         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
2502         (rs6000_debug_mode_dependent_address)
2503         (rs6000_mode_dependent_address_ptr): Likewise.
2504
2505 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2506
2507         PR debug/43983
2508         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
2509         by SRA.
2510         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
2511         * tree-sra.c (create_access_replacement): Call unshare_expr before
2512         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
2513         * dwarf2out.c: Include tree-flow.h.
2514         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
2515         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
2516         Handle DW_OP_bit_piece.
2517         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
2518         construct_piece_list, adjust_piece_list): New functions.
2519         (add_var_loc_to_decl): Handle SRA optimized variables.
2520         Adjust for var_loc_note to loc field renaming.
2521         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
2522         in VAR_LOCATION note.
2523         (new_loc_descr_op_bit_piece): New function.
2524         (dw_sra_loc_expr): New function.
2525         (dw_loc_list): Use it.  Don't handle the last range after the
2526         loop, handle it inside of the loop.  Adjust for var_loc_note
2527         to loc field renaming.
2528         (add_location_or_const_value_attribute): Only special case
2529         single entry loc lists if loc is NOTE_P.  Adjust for
2530         var_loc_note to loc field renaming.
2531         (dwarf2out_var_location): Don't set newloc->var_loc_note
2532         and newloc->next here.
2533
2534 2010-05-12  Jan Hubicka  <jh@suse.cz>
2535
2536         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
2537         flag.
2538         * cgraph.h (cgraph_only_called_directly_p,
2539         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
2540         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
2541         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
2542         (assemble
2543         * ipa.c (cgraph_remove_unreachable_nodes): Use
2544         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
2545         flags.
2546         * tree-inline.c (copy_bb): Check address_taken flag.
2547         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
2548         externally_visible flag.
2549
2550 2010-05-12  Jason Merrill  <jason@redhat.com>
2551
2552         PR bootstrap/44048
2553         PR target/44099
2554         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
2555         * sdbout.c (plain_type_1): Likewise.
2556         * dwarf2out.c (is_base_type): Likewise.
2557         (gen_type_die_with_usage): Likewise.  Generate
2558         DW_TAG_unspecified_type for any LANG_TYPE.
2559
2560 2010-05-12  Jan Hubicka  <jh@suse.cz>
2561
2562         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
2563         indrect edges too.
2564         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
2565         (cgraph_clone_edge): Update.
2566         (cgraph_node_remove_callees): Remove indirect calls too.
2567         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
2568         (cgraph_create_indirect_edge): Update prototype.
2569         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
2570         is_proper_for_analysis.
2571         (add_new_function, visited_nodes, function_insertion_hook_holder,
2572         get_local_reference_vars_info, mark_address_taken, mark_address,
2573         mark_load, mark_store, check_asm_memory_clobber, check_call,
2574         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
2575         (ipa_init): Do not initialize visited_nodes;
2576         function_insertion_hook_holder.
2577         (analyze_variable): Rewrite.
2578         (analyze_function): Rewrite.
2579         (copy_local_bitmap): Remove.
2580         (duplicate_node_dat): Do not duplicate local info.
2581         (generate_summary): Simplify to only walk cgraph.
2582         (write_node_summary_p, ipa_reference_write_summary,
2583         ipa_reference_read_summary): Remove.
2584         (propagate): Do not remove function insertion;
2585         generate summary.
2586         (pass_ipa_reference): NULLify summary handling fields.
2587         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
2588         (input_edge): Input ecf_flags.
2589         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
2590         (update_indirect_edges_after_inlining): Ignore edges with unknown
2591         param.
2592
2593 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
2594
2595         * implicit-zee.c: New file.
2596         * tree-pass.h (pass_implicit_zee): Declare.
2597         * passes.c (init_optimization_passes): Add zee pass.
2598         * common.opt (fzee): New flag.
2599         * timevar.def (TV_ZEE): Define.
2600         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
2601         and beyond.
2602         * Makefile.in (implicit-zee.o): Add new build file.
2603
2604 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2605             Nathan Froyd  <froydnj@codesourcery.com>
2606
2607         * c-common.c (sync_resolve_params): Remove write-only variable.
2608
2609 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
2610
2611         * target.h (struct gcc_target): Add mode_dependent_address_p field.
2612         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2613         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
2614         * targhooks.c (default_mode_dependent_address_p): New function.
2615         * targhooks.h (default_mode_dependent_address_p): Declare function.
2616         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2617         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
2618         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
2619         target hook. Change return type to bool.
2620         * recog.h (mode_dependent_address_p): Change return type to bool.
2621
2622 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2623             Nathan Froyd  <froydnj@codesourcery.com>
2624
2625         * tree-mudflap.c (build_function_type_0, build_function_type_1,
2626         build_function_type_2, build_function_type_3): Remove.
2627         (mudflap_init): Use build_function_type_list.
2628
2629 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2630             Nathan Froyd  <froydnj@codesourcery.com>
2631
2632         * coverage.c (build_fn_info_value): Call build_constructor instead of
2633         build_constructor_from_list.
2634         (build_ctr_info_value): Likewise.
2635         (build_gcov_info): Likewise.
2636
2637 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
2638
2639         * tree.c (build_constructor): Compute TREE_CONSTANT for the
2640         resultant constructor.
2641         (build_constructor_single): Don't set TREE_CONSTANT.
2642         (build_constructor_from_list): Don't compute TREE_CONSTANT.
2643
2644 2010-05-12  Jan Hubicka  <jh@suse.cz>
2645
2646         * cgraph.h (struct varpool_node): Add aux.
2647         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
2648         * varpool.c (varpool_remove_node): Do not remove initializer.
2649         (varpool_reset_queue): Export.
2650         (varpool_finalize_decl): Volatile vars are forced to be output.
2651         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
2652         replaced decl.
2653         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
2654         process_references, varpool_can_remove_if_no_refs): New functions.
2655         (cgraph_remove_unreachable_nodes): Handle variables too.
2656
2657 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
2658
2659         PR target/44088
2660         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
2661
2662 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
2663
2664         PR middle-end/44085
2665         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
2666         change value of ORT_TASK.
2667         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
2668         (omp_notice_threadprivate_variable): New function.
2669         (omp_notice_variable): Call it for threadprivate variables.
2670         If enclosing ctx is a task, print enclosing task rather than
2671         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
2672         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
2673         if task has untied clause.
2674
2675         PR debug/42278
2676         * dwarf2out.c (base_type_die): Don't add name attribute here.
2677         (modified_type_die): Instead of sizetype use
2678         its underlying original type.  If a DW_TAG_base_type doesn't
2679         have name added, add __unknown__.
2680         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
2681         always call force_type_die instead.
2682
2683 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
2684
2685         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
2686         for __stack_chk_guard.
2687
2688 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
2689
2690         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
2691         don't call start_source_file debug hook here...
2692         (finish_options): ... but here, after outputting predefined and
2693         command line defines and undefs.
2694
2695         PR middle-end/44071
2696         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
2697         no fallthru edge.
2698         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
2699         optimizing away empty bb with no successors, move over its
2700         footer chain to fallthru predecessor.
2701         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
2702         (rtl_split_edge): For asm goto call patch_jump_insn even if
2703         splitting fallthru edge.
2704
2705         PR c++/44059
2706         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
2707         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
2708         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
2709         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
2710         on DW.ref.* decls.
2711
2712         PR c++/44062
2713         * c-parser.c (c_parser_expression): Mark LHS of a comma
2714         expression as read if it is a decl, handled component or
2715         COMPOUND_EXPR with that on the RHS.
2716         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
2717         if it is a decl or handled component.
2718
2719 2010-05-11  Jan Hubicka  <jh@suse.cz>
2720
2721         * lto-symtab.c (lto_symtab_free): New function.
2722         * lto-streamer.h (lto_symtab_free): Declare.
2723
2724 2010-05-11  Jan Hubicka  <jh@suse.cz>
2725
2726         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
2727         that if function is needed it is reachable.
2728         (lto_output_node): See if it the function is reachable or referenced.
2729         (output_cgraph): Update call of lto_output_node.
2730         * lto-streamer.h (reachable_from_other_partition_p): Declare.
2731
2732 2010-05-11  Jan Hubicka  <jh@suse.cz>
2733
2734         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
2735         Mark as used.
2736
2737 2010-05-11  Jan Hubicka  <jh@suse.cz>
2738
2739         PR tree-optimize/44063
2740         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
2741         queue.
2742         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
2743         limits.
2744         (estimate_function_body_sizes): Compute sizes even when disregarding.
2745
2746 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
2747
2748         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
2749
2750 2010-05-11  Jan Hubicka  <jh@suse.cz>
2751
2752         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
2753         into every boundary.
2754
2755 2010-05-11  Jan Hubicka  <jh@suse.cz>
2756
2757         * matrix-reorg.c (matrix_reorg): Rebuild edges.
2758
2759 2010-05-11  Jan Hubicka  <jh@suse.cz>
2760
2761         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
2762         lto_streamer_cache_delete): Put nodes into heap.
2763         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
2764         heap.
2765
2766 2010-05-11  Jan Hubicka  <jh@suse.cz>
2767
2768         * cgraphbuild.c (cgraph_rebuild_references): New.
2769         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
2770         out extern inlines.
2771         * cgraph.h (cgraph_rebuild_references): Declare.
2772         * tree-inline.c (tree_function_versioning): Use it.
2773         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
2774
2775 2010-05-11  Jan Hubicka  <jh@suse.cz>
2776
2777         * cgraph.c: Include ipa-utils.h
2778         (cgraph_create_virtual_clone): Update references.
2779         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
2780
2781 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
2782
2783         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
2784         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
2785         cache size.
2786
2787 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
2788
2789         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
2790
2791 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
2792
2793         * gcc.c (execute): For -### don't quote arguments that
2794         contain just alphanumerics and _/-. characters.
2795         * doc/invoke.texi: Document that change for -###.
2796
2797         PR debug/44023
2798         * df-problems.c (struct dead_debug): Add to_rescan field.
2799         (dead_debug_init): Clear to_rescan field.
2800         (dead_debug_finish): Rescan all debug insns in to_rescan
2801         bitmap and free the bitmap.
2802         (dead_debug_insert_before): Instead of rescanning debug insns
2803         immediately queue their rescanning until dead_debug_finish.
2804         (df_note_bb_compute): After dead_debug_add do continue instead
2805         of break.
2806
2807 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
2808
2809         PR debug/44028
2810         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
2811         clear also INSN_REG_USE_LIST.
2812
2813 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2814
2815         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
2816
2817 2010-05-10  Jan Hubicka  <jh@suse.cz>
2818
2819         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
2820         commited change.
2821
2822 2010-05-10  Jan Hubicka  <jh@suse.cz>
2823
2824         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
2825         Allocate encoders.
2826         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
2827         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
2828         (lto_streamer_cache_create): Init alloc pool.
2829         (lto_streamer_cache_delete): Free alloc pool.
2830         * lto-streamer.h: Include alloc pool.
2831         (lto_streamer_cache_d): Use alloc pool.
2832         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
2833
2834 2010-05-10  Jan Hubicka  <jh@suse.cz>
2835
2836         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
2837         * cgraphbuild.c: Include except.h
2838         (record_type_list, record_eh_tables): New function.
2839         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
2840
2841 2010-05-10  Jan Hubicka  <jh@suse.cz>
2842
2843         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
2844         __frame_dummy_init_array_entry, force_to_data): Attribute as used
2845         rather than unused.
2846
2847 2010-05-10  Michael Matz  <matz@suse.de>
2848
2849         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
2850         (can_reassociate_p): Use FLOAT_TYPE_P.
2851         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
2852         (vect_force_simple_reduction): ... this.
2853         * tree-parloops.c (gather_scalar_reductions): Use
2854         vect_force_simple_reduction.
2855         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
2856         vect_is_simple_reduction, add modify argument, if true rewrite
2857         "a-b" into "a+(-b)".
2858         (vect_is_simple_reduction, vect_force_simple_reduction): New
2859         functions.
2860         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
2861
2862 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
2863             Vladimir Makarov  <vmakarov@redhat.com>
2864
2865         PR rtl-optimization/44012
2866         * ira-build.c (remove_unnecessary_allocnos): Nullify
2867         regno_allocno_map of the removed allocno.
2868
2869 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2870
2871         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
2872         to /dev/null.
2873         * configure: Regenerate.
2874
2875 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2876
2877         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
2878         unused.
2879         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
2880         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
2881         support in Sun ld.
2882         * configure: Regenerate.
2883
2884 2010-05-10  Richard Guenther  <rguenther@suse.de>
2885
2886         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
2887         marked if the entry identifier is marked.
2888
2889 2010-05-10  Richard Guenther  <rguenther@suse.de>
2890
2891         * c-common.c (struct c_common_attributes): Add fnspec attribute.
2892         (handle_fnspec_attribute): New function.
2893         * gimple.h (gimple_call_return_flags): Declare.
2894         (gimple_call_arg_flags): Likewise.
2895         * gimple.c (gimple_call_arg_flags): New function.
2896         (gimple_call_return_flags): Likewise.
2897         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
2898         New argument flags.
2899         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
2900         return value flags.
2901         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
2902         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
2903         main work to ...
2904         (make_heapvar_for): ... this new function.
2905         (handle_rhs_call): Handle fnspec attribute argument specifiers.
2906         (handle_lhs_call): Likewise.
2907         (find_func_aliases): Adjust.
2908
2909 2010-05-10  Richard Guenther  <rguenther@suse.de>
2910
2911         PR tree-optimization/44050
2912         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
2913
2914 2010-05-10  Wei Guozhi  <carrot@google.com>
2915
2916         PR target/42879
2917         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
2918
2919 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
2920
2921         PR c/10676
2922         * c-typeck.c (lookup_field): Take a type directly.  Update
2923         recursive calls.
2924         (build_component_ref): Update call to lookup_field.
2925         (set_init_label): Use lookup_field to find initialized field.
2926         Handle returned list of fields like a sequence of designators.
2927
2928 2010-05-09  Richard Guenther  <rguenther@suse.de>
2929
2930         PR middle-end/44024
2931         * fold-const.c (tree_single_nonzero_warnv_p): Properly
2932         handle &FUNCTION_DECL.
2933
2934 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
2935
2936         PR c/4784
2937         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
2938         structures and unions recursively.
2939         (detect_field_duplicates): Move duplicate detection with a hash to
2940         detect_field_duplicates_hash.  Always use a hash if anonymous
2941         structures or unions are present.
2942         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
2943         give errors.
2944
2945 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
2946
2947         PR target/44046
2948         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
2949         detect Atom, Core 2 and Core i7.
2950
2951 2010-05-09  Richard Guenther  <rguenther@suse.de>
2952
2953         * gcc.c (store_arg): Handle temporary file deletion for
2954         joined arguments.
2955
2956 2010-05-09  Richard Guenther  <rguenther@suse.de>
2957
2958         PR middle-end/44043
2959         * ipa-inline.c (estimate_function_body_sizes): Return after
2960         disregarding inline limits.
2961
2962 2010-05-09  Richard Guenther  <rguenther@suse.de>
2963
2964         * gcc.c (store_arg): Revert last change.
2965
2966 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
2967
2968         PR middle-end/28685
2969         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
2970         (optimize_ops_list): Call it.
2971
2972 2010-05-08  Richard Guenther  <rguenther@suse.de>
2973
2974         PR tree-optimization/44030
2975         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
2976         NECESSARY flag if we propagate from a inserted expression.
2977
2978 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
2979
2980         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
2981         domain types as equal if they are both PLACEHOLDER_EXPRs.
2982
2983 2010-05-08  Richard Guenther  <rguenther@suse.de>
2984
2985         * lto-wrapper.c (run_gcc): Remove linker output from
2986         command line for LTRANS invocation.
2987
2988 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
2989
2990         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
2991         lto-macho as lto_binary_reader.
2992         * target.h (struct gcc_target): New hooks lto_start and lto_end.
2993         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
2994         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
2995         in lto_start and lto_end calls.
2996         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
2997         magic numbers.
2998         (scan_prog_file): Update is_elf_or_coff call.
2999         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
3000
3001         * collect2.c (main): Fix enum comparison.
3002
3003         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
3004         Add prototypes.
3005         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
3006         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
3007         and TARGET_ASM_LTO_END.
3008         * darwin.c: Include obstack.h and lto-streamer.h.
3009         (lto_section_names_offset, lto_section_names_obstack,
3010         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
3011         global variables.
3012         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
3013         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
3014         to a temporary file.
3015         (darwin_asm_lto_end): New function.  Restore asm_out_file.
3016         (darwin_asm_named_section): For LTO sections, replace the name with
3017         the offset of the section name in a string table, and build this
3018         table.
3019         (darwin_file_start): Initialize global vars for LTO support.
3020         (darwin_file_end): If output to asm_out_file was redirected, append it
3021         to the proper asm_out_file here.  Add the section names section.
3022
3023 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
3024
3025         * c-pragma.c (pending_weak_d, pending_weak): New.
3026         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
3027         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
3028         handle_pragma_weak): Update the uses of pending_weaks.
3029
3030 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3031
3032         PR documentation/44016
3033         * doc/standards.texi (Standards): Link to unversioned
3034         cxx0x_status.html page.
3035
3036 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
3037
3038         PR target/43708
3039         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
3040         in addition to TREE_USED, to avoid "set but unused" warnings.
3041
3042 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
3043
3044         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
3045         (is_loop_prefetching_profitable): Do not insert prefetches
3046         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
3047         times the prefetch ahead distance.
3048
3049 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
3050
3051         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
3052         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
3053         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
3054         the unroll_factor.
3055
3056 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
3057
3058         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
3059         a diagnostic info when the insn-to-mem ratio is too small.
3060
3061 2010-05-07  Richard Guenther <rguenther@suse.de>
3062
3063         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
3064         the linker plugin.
3065         (store_arg): Queue temp_filename for deletion instead of
3066         the whole argument.
3067
3068 2010-05-07  Richard Guenther  <rguenther@suse.de>
3069
3070         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
3071         (run_gcc): Handle LTRANS phase invocation.
3072         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
3073
3074 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
3075
3076         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
3077         this is also meaningful on PARM_DECLs and RESULT_DECLs.
3078
3079 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3080
3081         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
3082
3083 2010-05-07  Richard Guenther  <rguenther@suse.de>
3084
3085         PR tree-optimization/44020
3086         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
3087         code when PRE is not yet initialized.
3088
3089 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3090
3091         * config/mips/dbxmdebug.h: Remove.
3092         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
3093
3094 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
3095
3096         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
3097         with null pointer and also warn about ordered comparison of zero with
3098         pointer if -Wextra.
3099
3100 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3101
3102         * graphite-blocking.c
3103         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
3104         * graphite-clast-to-gimple.c
3105         (clast_to_gcc_expression): Same.
3106         (precision_for_value): Same.
3107         (precision_for_interval): Same.
3108         (gcc_type_for_interval): Same.
3109         (graphite_create_new_guard): Same.
3110         (compute_bounds_for_level): Same.
3111         (graphite_create_new_loop_guard): Same.
3112         * graphite-interchange.c
3113         (build_linearized_memory_access): Same.
3114         (pdr_stride_in_loop): Same.
3115         (memory_strides_in_loop_1): Same.
3116         (memory_strides_in_loop): Same.
3117         (extend_scattering): Same.
3118         (psct_scattering_dim_for_loop_depth): Same.
3119         (pbb_number_of_iterations): Same.
3120         * graphite-poly.h
3121         (debug_iteration_domains): Same.
3122         * graphite-ppl.c
3123         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
3124         (ppl_set_inhomogeneous_gmp): Same.
3125         (ppl_strip_loop): Same.
3126         (ppl_lexico_compare_linear_expressions): Same.
3127         (ppl_read_polyhedron_matrix): Same.
3128         (ppl_max_for_le_pointset): Same.
3129         * graphite-ppl.h
3130         (ppl_read_polyhedron_matrix): Same.
3131         (tree_int_to_gmp): Same.
3132         (gmp_cst_to_tree): Same.
3133         (ppl_set_inhomogeneous): Same.
3134         (ppl_set_inhomogeneous_tree): Same.
3135         (ppl_set_coef): Same.
3136         (ppl_set_coef_tree): Same.
3137         * graphite-sese-to-poly.c
3138         (build_pbb_scattering_polyhedrons): Same.
3139         (build_scop_scattering): Same.
3140         (scan_tree_for_params_right_scev): Same.
3141         (scan_tree_for_params): Same.
3142         (find_params_in_bb): Same.
3143         (find_scop_parameters): Same.
3144         (add_upper_bounds_from_estimated_nit): Same.
3145         (build_loop_iteration_domains): Same.
3146         (add_condition_to_domain): Same.
3147         (pdr_add_memory_accesses): Same.
3148
3149 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3150
3151         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
3152         CLooG's value_* macros to their respective mpz_* counterparts.
3153         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
3154         (graphite_create_new_loop_guard): Same.
3155         * graphite-interchange.c (build_linearized_memory_access): Same.
3156         (pdr_stride_in_loop): Same.
3157         (memory_strides_in_loop_1): Same.
3158         (1st_interchange_profitable_p): Same.
3159         * graphite-poly.c (extend_scattering): Same.
3160         (psct_scattering_dim_for_loop_depth): Same.
3161         (pbb_number_of_iterations): Same.
3162         (pbb_number_of_iterations_at_time): Same.
3163         * graphite-poly.h (new_1st_loop): Same.
3164         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
3165         (oppose_constraint): Same.
3166         (insert_constraint_into_matrix): Same.
3167         (ppl_set_inhomogeneous_gmp): Same.
3168         (ppl_set_coef_gmp): Same.
3169         (ppl_strip_loop): Same.
3170         (ppl_lexico_compare_linear_expressions): Same.
3171         (ppl_max_for_le_pointset): Same.
3172         (ppl_min_for_le_pointset): Same.
3173         (ppl_build_realtion): Same.
3174         * graphite-ppl.h (gmp_cst_to_tree): Same.
3175         (ppl_set_inhomogeneous): Same.
3176         (ppl_set_inhomogeneous_tree): Same.
3177         (ppl_set_coef): Same.
3178         (ppl_set_coef_tree): Same.
3179         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
3180         (build_scop_scattering): Same.
3181         (add_value_to_dim): Same.
3182         (scan_tree_for_params_right_scev): Same.
3183         (scan_tree_for_params_int): Same.
3184         (scan_tree_for_params): Same.
3185         (find_params_in_bb): Same.
3186         (find_scop_parameters): Same.
3187         (add_upper_bounds_from_estimated_nit): Same.
3188         (build_loop_iteration_domains): Same.
3189         (create_linear_expr_from_tree): Same.
3190         (add_condition_to_domain): Same.
3191         (pdr_add_memory_accesses): Same.
3192
3193 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
3194             Jason Merrill  <jason@redhat.com>
3195
3196         * c-common.c (c_common_reswords): Add nullptr.
3197         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
3198         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
3199         (gen_type_die_with_usage): Likewise.
3200         * dbxout.c (dbxout_type): Likewise.
3201         * sdbout.c (plain_type_1): Likewise.
3202
3203 2010-05-06  Jason Merrill  <jason@redhat.com>
3204
3205         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
3206         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
3207         ret appropriately.
3208         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
3209
3210         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
3211         stripping WITH_SIZE_EXPR.
3212         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
3213         change.
3214
3215 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3216
3217         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
3218         list of obsolete configurations.
3219         Disabled check for obsolete configurations.
3220         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
3221         Removed support for previous versions.
3222         * config/mips/iris.h: Removed.
3223         * config/mips/iris5.h: Removed.
3224         * config/mips/iris6.h: Merged old iris.h contents.
3225         (TARGET_IRIX): Removed.
3226         (DRIVER_SELF_SPECS): Removed mabi=32.
3227         (IDENT_ASM_OP): Removed undef.
3228         (STARTFILE_SPEC): Removed mabi=32.
3229         (ENDFILE_SPEC): Likewise.
3230         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
3231         (MACHINE_TYPE): Update for IRIX 6.5.
3232         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
3233         TARGET_IRIX by TARGET_IRIX6.
3234         (mips_file_start): Likewise.
3235         (mips_output_external): Remove IRIX 5/6 O32 support.
3236         (mips_output_function_prologue): Likewise.
3237         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
3238         TARGET_IRIX6.
3239         (TARGET_CPU_CPP_BUILTINS): Likewise.
3240         (TARGET_IRIX): Removed.
3241         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
3242         (MULTILIB_DIRNAMES): Removed 32.
3243         (MULTILIB_OSDIRNAMES): Removed ../lib.
3244         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
3245         (Specific, mips-sgi-irix5): Document removal.
3246         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
3247         Remove references to older IRIX 6 releases and the O32 ABI.
3248
3249 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
3250
3251         PR bootstrap/43994
3252         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
3253         instead of DF_REF_REAL_REG.
3254
3255 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
3256
3257         PR target/43888
3258         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
3259         handling to still return true for x64 targets.
3260
3261 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3262
3263         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
3264
3265 2010-05-06  Jan Hubicka  <jh@suse.cz>
3266
3267         PR tree-optimization/43791
3268         * ipa-inline.c (update_caller_keys): Remove bogus
3269         disregard_inline_limits check.
3270
3271 2010-05-06  Michael Matz  <matz@suse.de>
3272
3273         PR tree-optimization/43984
3274         * tree-ssa-pre.c (inserted_phi_names): Remove.
3275         (inserted_exprs): Change to bitmap.
3276         (create_expression_by_pieces): Set bits, don't append to vector.
3277         (insert_into_preds_of_block): Don't handle inserted_phi_names.
3278         (eliminate): Don't look at inserted_phi_names, remove deleted
3279         insns from inserted_exprs.
3280         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
3281         (init_pre, fini_pre): Allocate and free bitmaps.
3282         (execute_pre): Insert insns on edges before elimination.
3283
3284 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3285
3286         * tree.c (initializer_zerop): Handle STRING_CST.
3287
3288 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3289
3290         PR 40989
3291         * doc/invoke.texi (Wimplicit): Document as C only.
3292         * opts.c (common_handle_option): Add argument kind.
3293         (handle_option): Rename as read_cmdline_option. Factor out code to...
3294         (handle_option): ... here. New.
3295         (handle_options): Rename as read_cmdline_options.
3296         (decode_options): Update call.
3297         (set_option): Use option index instead of option pointer. Classify
3298         diagnostics correctly.
3299         (enable_warning_as_error): Call handle_option.
3300         * opts.h (set_option): Update declaration.
3301         (handle_option): Declare.
3302         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
3303         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
3304         * c-opts.c (set_Wimplicit): Delete.
3305         (c_family_lang_mask): New static constant.
3306         (c_common_handle_option): Add argument kind. Use handle_option
3307         instead of set_Wimplicit.
3308         (c_common_post_options): warn_implicit and warn_implicit_int
3309         are disabled by default.
3310         * c-common.c (warn_implicit): Do not define here.
3311         * c-common.h (warn_implicit): Do not declare here.
3312         (c_common_handle_option): Update declaration.
3313         * lto-opts.c (lto_reissue_options): Update call to set_option.
3314
3315 2010-05-06  Richard Guenther  <rguenther@suse.de>
3316
3317         PR tree-optimization/43571
3318         * domwalk.c (walk_dominator_tree): Walk the dominator
3319         sons in more optimal order.
3320
3321 2010-05-06  Richard Guenther  <rguenther@suse.de>
3322
3323         PR tree-optimization/43934
3324         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
3325         (stmt_cost): Likewise.
3326         (extract_true_false_args_from_phi): New helper.
3327         (determine_max_movement): For PHI nodes verify we can hoist them
3328         and compute their cost.
3329         (determine_invariantness_stmt): Handle PHI nodes.
3330         (move_computations_stmt): Likewise.  Hoist PHI nodes in
3331         if-converted form using COND_EXPRs.
3332         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
3333         (tree_ssa_lim): Likewise.
3334         * tree-flow.h (tree_ssa_lim): Adjust prototype.
3335         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
3336
3337 2010-05-06  Richard Guenther  <rguenther@suse.de>
3338
3339         PR tree-optimization/43987
3340         * tree-ssa-structalias.c (could_have_pointers): For possibly
3341         address-taken variables force pointers to be recorded.
3342         (create_variable_info_for_1): Likewise.
3343         (push_fields_onto_fieldstack): Pass in wheter all fields
3344         must have pointers.
3345         (find_func_aliases): Query types instead of vars whether
3346         they contain pointers where appropriate.
3347
3348 2010-05-06  Jan Hubicka  <jh@suse.cz>
3349
3350         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
3351         (record_reference, mark_address, mark_load, mark_store): Record
3352         references.
3353         (record_references_in_initializer): Update call of record_references.
3354         (rebuild_cgraph_edges): Remove all references before rebuiding.
3355         * cgraph.c (cgraph_create_node): Clear ref list.
3356         (cgraph_remove_node): Remove references.
3357         (dump_cgraph_node): Dump references.
3358         (cgraph_clone_node): Clone references.
3359         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
3360         (struct cgraph_node, varpool_node): Add ref_lst.
3361         * ipa-ref.c: New file.
3362         * ipa-ref.h: New file.
3363         * ipa-ref-inline.h: New file.
3364         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
3365         (referenced_from_other_partition_p): New function.
3366         (lto_output_varpool_node): Take set arugment; call
3367         referenced_from_other_partition.
3368         (lto_output_ref): New.
3369         (add_references): New.
3370         (output_refs): New.
3371         (output_cgraph): Compute boundary based on references; output refs.
3372         (output_varpool): Accept cgraph_node_set argument.
3373         (input_ref): New.
3374         (input_refs): New.
3375         (input_cgraph): Call input_refs.
3376         * lto-section-in.c (lto_section_name): Add refs.
3377         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
3378         (ipa-ref.o): New file.
3379         * varpool.c (varpool_node): Clear ipa ref list.
3380         (varpool_remove_node): Remove references.
3381         (dump_varpool_node): Dump references.
3382         (varpool_assemble_decl): Only compile finalized ones.
3383         (varpool_extra_name_alias): Initialize ref list.
3384         * lto-streamer.c (lto-get_section_name): Add .refs section.
3385         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
3386         (referenced_from_other_partition_p): Declared.
3387
3388 2010-05-06  Ira Rosen  <irar@il.ibm.com>
3389
3390         PR tree-optimization/43901
3391         * tree-vect-stmts.c (vectorizable_call): Assert that vector
3392         type is not NULL if it's transformation phase, and return
3393         FALSE if it's analysis.
3394         (vectorizable_conversion, vectorizable_operation,
3395         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
3396
3397 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
3398
3399         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
3400         Delete.
3401         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
3402         New define.
3403         * config/mips/mips-protos.h
3404         (mips_small_register_classes_for_mode_p): Delete prototype.
3405
3406 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
3407
3408         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.