2010-05-28 Richard Guenther <rguenther@suse.de>
* lto-wrapper.c (run_gcc): With -save-temps generate a
user-visible ltrans filename. Fixup ltrans unit numbering.
lto/
* lto.c (prefix_name_with_star): Removed.
(strip_extension): Likewise.
(get_filename_for_set): Likewise.
(lto_write_ltrans_list): Fold into ...
(lto_wpa_write_files): ... this. Name LTRANS units
by suffixing the ltrans output list filename.
(do_whole_program_analysis): Adjust.
From-SVN: r159967
PR target/44266
* config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
emit_library_call machinery to set up __tls_get_addr calls.
From-SVN: r159963
gcc/ChangeLog:
revert fix for PR c++/44188
* c-common.c (is_typedef_decl): Revert the moving of this
definition ...
* tree.c (is_typedef_decl): ... here.
(typdef_variant_p): Revert the moving of this definition
here from gcc/cp/tree.c.
* c-common.h (is_typedef_decl): Revert the moving of this
declaration ...
* tree.h (is_typedef_decl): ... here.
(typedef_variant_p): Revert the moving of this declaration here
from gcc/cp/cp-tree.h
* dwarf2out.c (is_naming_typedef_decl): Revert this new function.
(gen_tagged_type_die): Revert the splitting out of ...
(gen_type_die_with_usage): ... this function. Revert the anonymous
tagged type handling.
(gen_typedef_die): Revert emitting DW_TAG_typedef for
typedefs naming anonymous tagged types.
gcc/cp/ChangeLog:
Revert fix of PR c++/44188
* cp-tree.h (typedef_variant_p): Revert moving this declaration to
gcc/tree.h.
* tree.c (typedef_variant_p): Revert moving this definition to
gcc/tree.c.
* decl.c (grokdeclarator): Revert naming typedef handling.
gcc/testsuite/ChangeLog:
Revert fix for PR c++/44188
* g++.dg/debug/dwarf2/typedef3.C: Revert new test.
From-SVN: r159955
* diagnostic-core.h: New. Contents moved from diagnostic.h and
toplev.h.
* diagnostic.c: Don't include toplev.h.
(progname): Define. Moved from toplev.c.
(seen_error): New function.
* diagnostic.h: Include diagnostic-core.h.
(diagnostic_t, emit_diagnostic): Don't declare here.
* toplev.c (progname): Move to toplev.c.
(emit_debug_global_declarations, compile_file, finalize,
do_compile, toplev_main): Use seen_error.
* toplev.h: Include diagnostic-core.h.
(trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
internal_error, warning, warning_at, error, error_n, error_at,
fatal_error, pedwarn, permerror, sorry, inform, inform_n,
verbatim, fnotice, progname): Move to diagnostic-core.h.
* builtins.c: Include diagnostic-core.h instead of diagnostic.h.
(expand_builtin_expect): Use seen_error.
* c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
(c_make_fname_decl, c_write_global_declarations): Use seen_error.
* c-format.c: Include diagnostic-core.h instead of diagnostic.h.
* c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
* c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
* c-lex.c (c_lex_with_flags, interpret_float): Don't increment
errorcount for errors.
* c-opts.c (c_common_finish): Use seen_error.
* cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
* cgraphunit.c (verify_cgraph_node, verify_cgraph,
cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
* coverage.c: Include diagnostic-core.h instead of diagnostic.h.
(get_coverage_counts): Use seen_error.
* dwarf2out.c (dwarf2out_finish): Use seen_error.
* gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
gimplify_body): Use seen_error.
* ipa-inline.c (cgraph_early_inlining): Use seen_error.
* ipa-pure-const.c (gate_pure_const): Use seen_error.
* ipa-reference.c (gate_reference): Use seen_error.
* jump.c: Include diagnostic-core.h instead of diagnostic.h.
* lambda-code.c: Include diagnostic-core.h instead of
diagnostic.h.
* lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
* lto-compress.c: Include diagnostic-core.h instead of
diagnostic.h.
* lto-section-in.c: Include diagnostic-core.h instead of
diagnostic.h.
* lto-streamer-out.c: Include diagnostic-core.h instead of
diagnostic.h.
* lto-streamer.c: Include diagnostic-core.h instead of
diagnostic.h.
(gate_lto_out): Use seen_error.
* matrix-reorg.c: Include diagnostic-core.h instead of
diagnostic.h.
* omega.c: Include diagnostic-core.h instead of diagnostic.h.
* omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
(gate_expand_omp, lower_omp_1): Use seen_error.
* passes.c: Include diagnostic-core.h instead of diagnostic.h.
(rest_of_decl_compilation, rest_of_type_compilation,
gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
* tree-cfg.c (label_to_block_fn): Use seen_error.
* tree-inline.c (optimize_inline_calls): Use seen_error.
* tree-mudflap.c (mudflap_finish_file): Use
seen_error.
* tree-optimize.c (gate_all_optimizations,
gate_all_early_local_passes, gate_all_early_optimizations): Use
seen_error.
* tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
* varpool.c: Include diagnostic-core.h instead of diagnostic.h.
(varpool_remove_unreferenced_decls,
varpool_assemble_pending_decls): Use seen_error.
* Makefile.in (DIAGNOSTIC_CORE_H): Define.
(TOPLEV_H, DIAGNOSTIC_H): Update.
(c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
coverage.o, lambda-code.o): Update dependencies.
cp:
* call.c: Include diagnostic-core.h instead of diagnostic.h.
* cp-lang.c: Don't include diagnostic.h
* name-lookup.c: Include diagnostic-core.h instead of
diagnostic.h.
(cp_emit_debug_info_for_using): Use seen_error.
* optimize.c: Include diagnostic-core.h instead of diagnostic.h.
* parser.c: Include diagnostic-core.h instead of diagnostic.h.
* pt.c (iterative_hash_template_arg): Use seen_error.
* repo.c: Include diagnostic-core.h instead of diagnostic.h.
* typeck2.c: Include diagnostic-core.h instead of diagnostic.h.
* Make-lang.in (cp/cp-lang.o, cp/typeck2.o, cp/call.o, cp/repo.o,
cp/optimize.o, cp/parser.o, cp/name-lookup.o): Update
dependencies.
lto:
* lto.c: Include diagnostic-core.h instead of diagnostic.h.
(read_cgraph_and_symbols, lto_main): Use seen_error.
* Make-lang.in (lto/lto.o): Update dependencies.
objc:
* objc-act.c: Include diagnostic-core.h instead of diagnostic.h.
* Make-lang.in (objc/objc-act.o): Update dependencies.
From-SVN: r159947
Fix PR c++/44188
gcc/ChangeLog:
PR c++/44188
* c-common.c (is_typedef_decl): Move this definition ...
* tree.c (is_typedef_decl): ... here.
(typdef_variant_p): Move definition here from gcc/cp/tree.c.
* c-common.h (is_typedef_decl): Move this declaration ...
* tree.h (is_typedef_decl): ... here.
(typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
* dwarf2out.c (is_naming_typedef_decl): New function.
(gen_tagged_type_die): Split out of ...
(gen_type_die_with_usage): ... this function. When an anonymous
tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
is emitted for the typedef.
(gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
anonymous tagged types.
gcc/cp/ChangeLog:
PR c++/44188
* cp-tree.h (typedef_variant_p): Move this declaration to
gcc/tree.h.
* tree.c (typedef_variant_p): Move this definition to gcc/tree.c.
* decl.c (grokdeclarator): Do not rename debug info of an
anonymous tagged type named by a typedef.
gcc/testsuite/ChangeLog:
PR c++/44188
* g++.dg/debug/dwarf2/typedef3.C: New test.
From-SVN: r159943
* ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
(update_caller_keys): Return early if there are no callers;
only update fibheap when decresing the key.
(update_callee_keys): Avoid recursion.
(decide_inlining_of_small_functions): When badness does not match;
re-insert into fibheap.
From-SVN: r159931
gcc/ChangeLog:
* Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
(ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
(ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
(ALL_HOST_OBJS): Now a union of the above two.
<section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
all files in ALL_HOST_FRONTEND_OBJS.
* system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
* c-common.c: Pretend to be a backend file by undefining
IN_GCC_FRONTEND (still need rtl.h here).
ada/ChangeLog:
* gcc-interface/decl.c: Pretend to be a backend file by undefining
IN_GCC_FRONTEND (still need rtl.h here).
java/ChangeLog:
* buildings.c: Pretend to be a backend file by undefining
IN_GCC_FRONTEND (still need rtl.h here).
From-SVN: r159927
* cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
* cgraphunit.c (clone_of_p): Compile only when checking is enabled.
From-SVN: r159925
PR lto/44230
* dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
lto/
* lto.h (lto_eh_personality): New prototype.
* lto.c: Include debug.h.
(first_personality_decl): New static variable.
(lto_materialize_function): Set it to DECL_FUNCTION_PERSONALITY of the
first function for which it is non-null.
(lto_eh_personality_decl): New static variable.
(lto_eh_personality): New function.
* lto-lang.c (LANG_HOOKS_EH_PERSONALITY): Redefine to above function.
* Make-lang.in (lto/lto.o): Add dependency on debug.h.
From-SVN: r159921
* gthr-posix.h (pthread_cancel): Don't declare if compiling against
Bionic C library.
(__gthread_active_p): Check for pthread_create if compiling against
Bionic C library.
From-SVN: r159919
Add support for Bionic C library
gcc/
* config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
macro.
(DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
(bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
* config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
(LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
(CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
to support multiple C libraries. Handle Bionic.
(BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
(BIONIC_DYNAMIC_LINKER64): Define.
(LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
Update.
(TARGET_HAS_SINCOS): Enable for Bionic.
* config/linux.opt: Rewrite to handle more than 2 C libraries. Make
the last option specified on command line take effect.
(linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
(mbionic): New.
(mglibc, muclibc): Update.
* config/alpha/linux-elf.h, config/rs6000/linux64.h,
* config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
DEFAULT_LIBC.
* doc/invoke.texi (-mglibc, -muclibc): Update.
(-mbionic): Document.
gcc/testsuite/
* gcc.dg/glibc-uclibc-1.c, gcc.dg/glibc-uclibc-2.c: Remove, no longer
necessary.
From-SVN: r159917
* cgraphunit.c (verify_cgraph_node): Do checking that DECL match
edge only when checking is enabled; check using former_clone_of;
check inline clones too.
(cgraph_materialize_clone): Record former_clone_of pointer.
(cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
combining redirections; dump args_to_skip bitmap
(cgraph_materialize_all_clones): Do no redirection here.
* ipa-inline.c (inline_transform): Do redirection here.
* cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
cheking only).
From-SVN: r159907
* config/avr/avr-c.c: Do not include regs.h.
Include cpplib.h for cpp_define and tree.h for c-common.h.
* config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
* config/avr/t-avr: Fix dependencies for avr-c.o.
From-SVN: r159901
gcc/ChangeLog:
* explow.c (set_stack_check_libfunc): Adjust to accept name as a
string instead of SYMBOL_REF rtx.
* rtl.h (set_stack_check_libfunc): Move prototype from here...
* libfuncs.h: ...to here. Adjust for explow.c change.
ada/ChangeLog:
* gcc-interface/trans.c: Do not include rtl.h, insclude libfuncs.h.
(gigi): Adjust call to set_stack_check_libfunc.
From-SVN: r159900
* java-tree.h (struct lang_decl_func): Change type of throws_list
field to a VEC.
* jcf-parse.c (HANDLE_EXCEPTIONS_ATTRIBUTE): Adjust for changed type
of DECL_FUNCTION_THROWS.
* class.c (make_method_value): Likewise.
From-SVN: r159899
* dwarf2out.c (struct dw_fde_struct): Reorder flags.
(fde_needed_for_eh_p): New predicate.
(output_call_frame_info): Use it throughout to decide whether FDEs
are needed for EH purpose.
(dwarf2out_begin_prologue): Reorder assignments.
From-SVN: r159889
2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
* tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
special case loop->header.
(is_predicated): New.
(if_convertible_loop_p): Call it.
From-SVN: r159887