Commit Graph

40669 Commits

Author SHA1 Message Date
Steven Bosscher c082f9f317 configure.ac (--enable-lto): Add x86_64-apple-darwin* as a platform that supports LTO.
ChangeLog:
	* configure.ac (--enable-lto): Add x86_64-apple-darwin* as
	a platform that supports LTO.
	* configure: Regenerate.

gcc/ChangeLog:
	* config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
	lto-macho as lto_binary_reader.
	* target.h (struct gcc_target): New hooks lto_start and	lto_end.
	* target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
	* cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
	in lto_start and lto_end calls.
	(is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
	magic numbers.
	(scan_prog_file): Update is_elf_or_coff call.
	* doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.

	* collect2.c (main): Fix enum comparison.

	* config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
	Add prototypes.
	* darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
	* darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
	and TARGET_ASM_LTO_END.
	* darwin.c: Include obstack.h and lto-streamer.h.
	(lto_section_names_offset, lto_section_names_obstack,
	lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
	global variables.
	(LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
	(darwin_asm_lto_start): New function.  Redirect output to asm_out_file
	to a temporary file.
	(darwin_asm_lto_end): New function.  Restore asm_out_file.
	(darwin_asm_named_section): For LTO sections, replace the name with
	the offset of the section name in a string table, and build this
	table.
	(darwin_file_start): Initialize global vars for LTO support.
	(darwin_file_end): If output to asm_out_file was redirected, append it
	to the proper asm_out_file here.  Add the section names section.

lto/ChangeLog:
	* lto.h (struct lto_file_struct): Document offset member.
	* lto-endian.h: New file.
	* lto-macho.h: New file.
	* lto-macho.c: New file.
	* Make-lang.in: Add rule for lto-macho.o.

From-SVN: r159173
2010-05-07 21:37:43 +00:00
Steven Bosscher 18bc5398c1 c-pragma.c (pending_weak_d, [...]): New.
* c-pragma.c (pending_weak_d, pending_weak): New.
	(pending_weaks): Change the type to VEC((pending_weak,gc) *.
	(maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
	handle_pragma_weak): Update the uses of pending_weaks.

From-SVN: r159172
2010-05-07 20:49:29 +00:00
Ralf Wildenhues 0f590a2d73 Fix link to outdated cxx0x status page.
gcc/:
        PR documentation/44016
        * doc/standards.texi (Standards): Link to unversioned
        cxx0x_status.html page.

From-SVN: r159168
2010-05-07 20:10:09 +00:00
Iain Sandoe 3bd5cdeb0e re PR target/43708 (gcc.dg/pragma-darwin.c "set not used", not working with pragma)
PR target/43708
	* config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
	in addition to TREE_USED, to avoid "set but unused" warnings.

From-SVN: r159164
2010-05-07 17:34:31 +00:00
Changpeng Fang 9bf4598b0d Define the TRIP_COUNT_TO_AHEAD_RATIO heuristic.
2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>

	* tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
	(is_loop_prefetching_profitable): Do not insert prefetches
	when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
	times the prefetch ahead distance.

From-SVN: r159163
2010-05-07 17:26:02 +00:00
Changpeng Fang ccacf0e193 Account for loop unrolling in the insn-to-prefetch ratio heuristic.
2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>

	* tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
	Account for loop unrolling in the insn-to-prefetch ratio heuristic.
	(loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
	the unroll_factor.

From-SVN: r159162
2010-05-07 16:15:52 +00:00
Changpeng Fang 55e5a2ebc0 Dump a diagnostic info when the insn-to-mem ratio is too small.
2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>

	* tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
	a diagnostic info when the insn-to-mem ratio is too small.

From-SVN: r159161
2010-05-07 16:15:45 +00:00
Richard Guenther 5cd0e96b0e re PR lto/43857 (-fresolution causes an ICE)
2010-05-07  Richard Guenther <rguenther@suse.de>

	* gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
	the linker plugin.
	(store_arg): Queue temp_filename for deletion instead of
	the whole argument.

	lto/
	PR lto/43857
	PR lto/43371
	* lang.opt (fresolution): Change to ...
	(fresolution=): ... this.
	* lto-lang.c (lto_handle_option): Adjust.

	lto-plugin/
	* lto-plugin.c (free_2): Do not free resolution_file.
	(write_resolution): Check that we were passed a resolution file.
	(all_symbols_read_handler): Adjust.
	(cleanup_handler): Do not remove the resolution file.
	(process_option): Handle -fresolution=.

From-SVN: r159159
2010-05-07 15:53:40 +00:00
Richard Biener 48cf395bdb lto-wrapper.c (DUMPBASE_SUFFIX): Define.
2010-05-07  Richard Guenther  <rguenther@suse.de>

	* lto-wrapper.c (DUMPBASE_SUFFIX): Define.
	(run_gcc): Handle LTRANS phase invocation.
	* collect2.c (maybe_run_lto_and_relink): Do not set
	WPA_SAVE_LTRANS.

	lto/
	* lto.c (DUMPBASE_SUFFIX): Remove.
	(lto_execute_ltrans): Move functionality to lto-wrapper.c.
	Rename to ...
	(lto_write_ltrans_list): ... only output the list of ltrans files.
	(lto_maybe_unlink): Remove.
	(do_whole_program_analysis): Do not execute LTRANS phase
	from here.

From-SVN: r159157
2010-05-07 15:52:01 +00:00
Jakub Jelinek 86b2c5b637 tree.h (TREE_ADDRESSABLE): Adjust comment to say that this is also meaningful on PARM_DECLs and RESULT_DECLs.
* tree.h (TREE_ADDRESSABLE): Adjust comment to say that
	this is also meaningful on PARM_DECLs and RESULT_DECLs.

From-SVN: r159156
2010-05-07 17:47:52 +02:00
Rainer Orth c4e1e0b1f5 * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
From-SVN: r159151
2010-05-07 12:36:58 +00:00
Richard Guenther a7d4562a9d re PR middle-end/44020 (Failed to build 200.sixtrack in SPEC CPU 2K)
2010-05-07  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/44020
	* tree-ssa-pre.c (execute_pre): Do not remove dead inserted
	code when PRE is not yet initialized.

From-SVN: r159150
2010-05-07 11:55:21 +00:00
Rainer Orth a6b02ef3f8 dbxmdebug.h: Remove.
* config/mips/dbxmdebug.h: Remove.
	* config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.

From-SVN: r159147
2010-05-07 09:21:23 +00:00
Shujing Zhao d42ba3b80a c-typeck.c (build_binary_op): Warn ordered comparison of pointer with null pointer and also warn about...
gcc/
2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>

        * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
        with null pointer and also warn about ordered comparison of zero
        with pointer if -Wextra.

gcc/testsuite/
2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>

        * gcc.dg/ordered-comparison-1.c: New test.
        * gcc.dg/ordered-comparison-2.c: New test.
        * gcc.dg/ordered-comparison-3.c: New test.
        * gcc.dg/ordered-comparison-4.c: New test.

From-SVN: r159145
2010-05-07 08:18:06 +00:00
Andreas Simbuerger a6733c7124 Add ChangeLog entries.
From-SVN: r159135
2010-05-06 21:53:47 +00:00
Jason Merrill 14c2101daa Add support for C++0x nullptr.
gcc:
	* c-common.c (c_common_reswords): Add nullptr.
	* c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
	* dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
	(gen_type_die_with_usage): Likewise.
	* dbxout.c (dbxout_type): Likewise.
	* sdbout.c (plain_type_1): Likewise.
gcc/cp:
	* cp-tree.def: Add NULLPTR_TYPE.
	* cp-tree.h: Add nullptr_node.
	(cp_tree_index): Add CPTI_NULLPTR.
	(SCALAR_TYPE_P): Add NULLPTR_TYPE.
	* call.c (null_ptr_cst_p): Handle nullptr.
	(standard_conversion): Likewise.
	(convert_arg_to_ellipsis): Likewise.
	* mangle.c (write_type): Likewise.
	* name-lookup.c (arg_assoc_type): Likewise.
	* parser.c (cp_parser_primary_expression): Likewise.
	* typeck.c (cp_build_binary_op): Likewise.
	(build_reinterpret_cast_1): Likewise.
	* error.c (dump_type): Likewise.
	(dump_type_prefix, dump_type_suffix): Likewise.
	* decl.c (cxx_init_decl_processing): Likewise.
	* cxx-pretty-print.c (pp_cxx_constant): Likewise.
	* cvt.c (ocp_convert): Likewise.
	* rtti.c (typeinfo_in_lib_p, emit_support_tinfos): Put
	nullptr_t tinfo in libsupc++.
libstdc++-v3:
	* config/abi/pre/gnu.ver: Add typeinfo for decltype(nullptr).
libiberty:
	* cp-demangle.c (cplus_demangle_builtin_types): Add nullptr.
	(cplus_demangle_type): Handle nullptr.

From-SVN: r159131
2010-05-06 16:51:52 -04:00
Jason Merrill 941f78d103 gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
gcc:
	* gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
	Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
	ret appropriately.
	(gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
gcc/cp:
	* semantics.c (simplify_aggr_init_expr): Use INIT_EXPR.

From-SVN: r159125
2010-05-06 15:46:14 -04:00
Jason Merrill ebad523301 gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for stripping WITH_SIZE_EXPR.
* gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
	stripping WITH_SIZE_EXPR.
	(gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
	change.

From-SVN: r159124
2010-05-06 15:46:03 -04:00
Rainer Orth 9aaa1ee883 config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from list of obsolete configurations.
gcc:
	* config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
	list of obsolete configurations.
	Disabled check for obsolete configurations.
	(mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
	Removed support for previous versions.
	* config/mips/iris.h: Removed.
	* config/mips/iris5.h: Removed.
	* config/mips/iris6.h: Merged old iris.h contents.
	(TARGET_IRIX): Removed.
	(DRIVER_SELF_SPECS): Removed mabi=32.
	(IDENT_ASM_OP): Removed undef.
	(STARTFILE_SPEC): Removed mabi=32.
	(ENDFILE_SPEC): Likewise.
	(IRIX_SUBTARGET_LINK_SPEC): Likewise.
	(MACHINE_TYPE): Update for IRIX 6.5.
	* config/mips/mips.c (mips_build_builtin_va_list): Replaced
	TARGET_IRIX by TARGET_IRIX6.
	(mips_file_start): Likewise.
	(mips_output_external): Remove IRIX 5/6 O32 support.
	(mips_output_function_prologue): Likewise.
	* config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
	TARGET_IRIX6.
	(TARGET_CPU_CPP_BUILTINS): Likewise.
	(TARGET_IRIX): Removed.
	* config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
	(MULTILIB_DIRNAMES): Removed 32.
	(MULTILIB_OSDIRNAMES): Removed ../lib.
	* doc/install.texi (Prerequisites): Don't reference IRIX before
	6.5.
	(Specific, mips-sgi-irix5): Document removal.
	(Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI
	removal.
	Remove references to older IRIX 6 releases and the O32 ABI.

	gcc/ada:
	* gcc-interface/Makefile.in: Removed mips-sgi-irix5* support.

	libstdc++-v3:
	* configure.host: Removed irix[1-6], irix[1-5].*, irix6.[0-4]*
	support.
	* config/os/irix/irix5.2: Removed.

From-SVN: r159121
2010-05-06 18:47:18 +00:00
Jakub Jelinek 0718e39d0d Wunused-var-8.c: Move to...
* gcc.dg/Wunused-var-8.c: Move to...
	* c-c++-common/Wunused-var-6.c: ... here.  New test.

From-SVN: r159118
2010-05-06 19:41:34 +02:00
Jakub Jelinek 5b8bd3d5be re PR bootstrap/43994 (Revision 159063 failed to bootstrap on Linux/ia64)
PR bootstrap/43994
	* df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
	instead of DF_REF_REAL_REG.

From-SVN: r159117
2010-05-06 19:34:47 +02:00
Dave Korn e97580ceb3 re PR target/43888 (FAIL: gcc.dg/alias-7.c execution test)
PR target/43888
	* config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
	handling to still return true for x64 targets.

From-SVN: r159111
2010-05-06 16:06:18 +00:00
Maxim Kuvyrkov f24d84cccf * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
From-SVN: r159110
2010-05-06 15:54:14 +00:00
Jan Hubicka ef38b55137 re PR tree-optimization/43791 (kernel/rtmutex.c:1138:1: internal compiler error: in cgraph_decide_inlining_of_small_functions, at ipa-inline.c:1009)
PR tree-optimization/43791
	* ipa-inline.c (update_caller_keys): Remove bogus
	disregard_inline_limits check.

	* gcc.c-torture/compile/pr43791.c: New file.

From-SVN: r159108
2010-05-06 14:15:22 +00:00
Michael Matz 0ab555de37 re PR tree-optimization/43984 (PRE misses full-redundancies, inserts into loops)
PR tree-optimization/43984

	* tree-ssa-pre.c (inserted_phi_names): Remove.
	(inserted_exprs): Change to bitmap.
	(create_expression_by_pieces): Set bits, don't append to vector.
	(insert_into_preds_of_block): Don't handle inserted_phi_names.
	(eliminate): Don't look at inserted_phi_names, remove deleted
	insns from inserted_exprs.
	(remove_dead_inserted_code): Adjust to use bitmaps instead of
	vectors.
	(init_pre, fini_pre): Allocate and free bitmaps.
	(execute_pre): Insert insns on edges before elimination.

testsuite/
	* gfortran.dg/pr43984.f90: New test.

From-SVN: r159106
2010-05-06 13:54:32 +00:00
Maxim Kuvyrkov 315a02daf1 * tree.c (initializer_zerop): Handle STRING_CST.
From-SVN: r159103
2010-05-06 10:28:46 +00:00
Manuel López-Ibáñez 3734d9607e re PR c/40989 (-Werror= and #pragma diagnostics do not work with group flags)
2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR 40989
	* doc/invoke.texi (Wimplicit): Document as C only.
	* opts.c (common_handle_option): Add argument kind.
	(handle_option): Rename as read_cmdline_option. Factor out code to...
	(handle_option): ... here. New.
	(handle_options): Rename as read_cmdline_options.
	(decode_options): Update call.
	(set_option): Use option index instead of option pointer. Classify
	diagnostics correctly.
	(enable_warning_as_error): Call handle_option.
	* opts.h (set_option): Update declaration.
	(handle_option): Declare.
	* langhooks.h (struct lang_hooks): Add argument kind to
	handle_option.
	* c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
	* c-opts.c (set_Wimplicit): Delete.
	(c_family_lang_mask): New static constant.
	(c_common_handle_option): Add argument kind. Use handle_option
	instead of set_Wimplicit.
	(c_common_post_options): warn_implicit and warn_implicit_int
	are disabled by default.
	* c-common.c (warn_implicit): Do not define here.
	* c-common.h (warn_implicit): Do not declare here.
	(c_common_handle_option): Update declaration.
	* lto-opts.c (lto_reissue_options): Update call to set_option.
java/
	* lang.c (java_handle_option): Add argument kind.
fortran/	
	* options.c (gfc_handle_option): Add argument kind.
	* gfortran.h (gfc_handle_option): Update declaration.
ada/
	* gcc-interface/misc.c (gnat_handle_option): Add argument kind.
testsuite/
	* gcc.dg/pr40989.c: New.

From-SVN: r159102
2010-05-06 10:12:36 +00:00
Richard Guenther 2b90475add re PR tree-optimization/43571 (domwalk sucks)
2010-05-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43571
	* domwalk.c (walk_dominator_tree): Walk the dominator
	sons in more optimal order.

From-SVN: r159100
2010-05-06 09:08:57 +00:00
Richard Guenther e3bdfed62a re PR tree-optimization/43934 (LIM should handle PHI nodes)
2010-05-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43934
	* tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
	(stmt_cost): Likewise.
	(extract_true_false_args_from_phi): New helper.
	(determine_max_movement): For PHI nodes verify we can hoist them
	and compute their cost.
	(determine_invariantness_stmt): Handle PHI nodes.
	(move_computations_stmt): Likewise.  Hoist PHI nodes in
	if-converted form using COND_EXPRs.
	(move_computations): Return TODO_cleanup_cfg if we hoisted PHI
	nodes.
	(tree_ssa_lim): Likewise.
	* tree-flow.h (tree_ssa_lim): Adjust prototype.
	* tree-ssa-loop.c (tree_ssa_loop_im): Return todo.

	* gcc.dg/tree-ssa/ssa-lim-9.c: New testcase.

From-SVN: r159099
2010-05-06 09:04:00 +00:00
Richard Guenther a81b065a47 re PR middle-end/43987 (type-punning causes broken binaries unless -O0 is used)
2010-05-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43987
	* tree-ssa-structalias.c (could_have_pointers): For possibly
	address-taken variables force pointers to be recorded.
	(create_variable_info_for_1): Likewise.
	(push_fields_onto_fieldstack): Pass in wheter all fields
	must have pointers.
	(find_func_aliases): Query types instead of vars whether
	they contain pointers where appropriate.

	* gcc.c-torture/execute/pr43987.c: New testcase.
	* gcc.dg/torture/pta-escape-1.c: Adjust.
	* gcc.dg/tree-ssa/pta-escape-1.c: Likewise.
	* gcc.dg/tree-ssa/pta-escape-2.c: Likewise.
	* gcc.dg/tree-ssa/pta-escape-3.c: Likewise.
	* gcc.dg/ipa/ipa-pta-11.c: Likewise.

From-SVN: r159098
2010-05-06 08:53:19 +00:00
Jan Hubicka 369451ec60 cgraphbuild.c (record_reference_ctx): Add varpool_node.
* cgraphbuild.c (record_reference_ctx): Add varpool_node.
	(record_reference, mark_address, mark_load, mark_store): Record
	references.
	(record_references_in_initializer): Update call of record_references.
	(rebuild_cgraph_edges): Remove all references before rebuiding.
	* cgraph.c (cgraph_create_node): Clear ref list.
	(cgraph_remove_node): Remove references.
	(dump_cgraph_node): Dump references.
	(cgraph_clone_node): Clone references.
	* cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
	(struct cgraph_node, varpool_node): Add ref_lst.
	* ipa-ref.c: New file.
	* ipa-ref.h: New file.
	* ipa-ref-inline.h: New file.
	* lto-cgraph.c (output_varpool): Take cgrag node set argument.
	(referenced_from_other_partition_p): New function.
	(lto_output_varpool_node): Take set arugment; call
	referenced_from_other_partition.
	(lto_output_ref): New.
	(add_references): New.
	(output_refs): New.
	(output_cgraph): Compute boundary based on references;
	output refs.
	(output_varpool): Accept cgraph_node_set argument.
	(input_ref): New.
	(input_refs): New.
	(input_cgraph): Call input_refs.
	* lto-section-in.c (lto_section_name): Add refs.
	* Makefile.in: (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
	(ipa-ref.o): New file.
	* varpool.c (varpool_node): Clear ipa ref list.
	(varpool_remove_node): Remove references.
	(dump_varpool_node): Dump references.
	(varpool_assemble_decl): Only compile finalized ones.
	(varpool_extra_name_alias): Initialize ref list.
	* lto-streamer.c (lto-get_section_name): Add .refs section.
	* lto-streamer.h (lto_section_type): Add LTO_section_refs.
	(referenced_from_other_partition_p): Declared.

From-SVN: r159097
2010-05-06 08:39:32 +00:00
Ira Rosen 7d8930a046 re PR middle-end/43901 (FAIL: gcc.c-torture/compile/pr42196-2.c)
PR tree-optimization/43901
	* tree-vect-stmts.c (vectorizable_call): Assert that vector
	type is not NULL if it's transformation phase, and return
	FALSE if it's analysis.
	(vectorizable_conversion, vectorizable_operation, 
	vectorizable_type_demotion, vectorizable_type_promotion):
	Likewise.

From-SVN: r159095
2010-05-06 06:42:51 +00:00
Andrew Pinski a1c4f19f77 mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Delete.
2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>

        * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
        Delete.
        * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
        New define.
        * config/mips/mips-protos.h
        (mips_small_register_classes_for_mode_p): Delete prototype.

From-SVN: r159090
2010-05-05 17:14:59 -07:00
Bernd Schmidt 93b338c396 arm.h (MAX_LDM_STM_OPS): New macro.
* config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
	* config/arm/arm.c (multiple_operation_profitable_p,
	compute_offset_order): New static functions.
	(load_multiple_sequence, store_multiple_sequence): Use them.
	Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
	memory offsets, not register numbers.
	(emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.

From-SVN: r159089
2010-05-05 22:46:38 +00:00
Steven Bosscher 5070147434 stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
* stor-layout.c (pending_sizes): Change the type to
	VEC(tree,gc) *.
	(get_pending_sizes, put_pending_size, put_pending_sizes):
	Update the uses of pending_sizes.
	* c-decl.c (store_parm_decls): Likewise.
	* c-tree.h (struct c_arg_info): Likewise.
	* tree.h: Update the prototype for get_pending_sizes and
	put_pending_sizes.

From-SVN: r159085
2010-05-05 21:32:44 +00:00
Jason Merrill 0f559c16ea re PR debug/43370 (ICE gen_type_die_with_usage, at dwarf2out.c:14745)
PR debug/43370
	* c-common.c (handle_aligned_attribute): Respect
	ATTR_FLAG_TYPE_IN_PLACE.

From-SVN: r159081
2010-05-05 15:46:41 -04:00
Jason Merrill 564a129d22 re PR testsuite/43758 (19 new GCC HEAD@158360 regressions)
PR testsuite/43758
	* target.h (struct gcc_target): Add attribute_takes_identifier_p.
	* target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
	(TARGET_INITIALIZER): Use it.
	* c-common.c (attribute_takes_identifier_p): Call it.
	* c-common.h: Update prototype.
	* config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
	(TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.

From-SVN: r159079
2010-05-05 15:33:11 -04:00
Jakub Jelinek 58c13acc6a re PR debug/43950 (fortran: Use DW_AT_identifier_case)
PR debug/43950
	* dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
	DW_ID_down_case for Fortran compilation units.

From-SVN: r159077
2010-05-05 21:11:16 +02:00
Jan Hubicka 5b042919f7 lto-cgraph.c (lto_output_varpool_node, [...]): Correctly handle aliases.
* lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
	handle aliases.

From-SVN: r159075
2010-05-05 18:14:43 +00:00
Eric Botcazou ca361dec8f gimplify.c (gimplify_return_expr): Gimplify the size expressions of a variable-sized RESULT_DECL.
* gimplify.c (gimplify_return_expr): Gimplify the size expressions of
	a variable-sized RESULT_DECL.

From-SVN: r159074
2010-05-05 17:48:01 +00:00
Maxim Kuvyrkov fa6aeae1ad * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
From-SVN: r159073
2010-05-05 17:11:26 +00:00
Jason Merrill 6d729f282c re PR c++/43787 (memory copy of empty class (sizeof is one))
PR c++/43787
gcc:
	* gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
	returns GS_OK.
	(gimplify_modify_expr_rhs): Return GS_OK if anything changed.
gcc/cp:
	* cp-gimplify.c (cp_gimplify_expr): Remove copies of empty classes.
	* call.c (build_over_call): Don't try to avoid INIT_EXPR copies here.

From-SVN: r159072
2010-05-05 12:32:20 -04:00
Alexandre Oliva e972a1d38a re PR debug/43478 (Missing DW_AT_location for a variable)
PR debug/43478
	* df-problems.c (struct dead_debug_use, struct dead_debug): New.
	(dead_debug_init, dead_debug_finish): New functions.
	(dead_debug_add, dead_debug_insert_before): Likewise.
	(df_note_bb_compute): Initialize a dead_debug object, add dead
	debug uses to it, insert debug bind insns before death insns,
	reset debug insns that refer to pending uses at the end.
	* rtl.h (make_debug_expr_from_rtl): New prototype.
	* varasm.c (make_debug_expr_from_rtl): New function.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r159063
2010-05-05 12:43:36 +02:00
Jan Hubicka 2f41ecf538 lto-cgraph.c (output_varpool): Forward declare; work on encoder.
* lto-cgraph.c (output_varpool): Forward declare; work on encoder.
	(lto_varpool_encoder_new, lto_varpool_encoder_delete, lto_varpool_encoder_encode
	lto_varpool_encoder_lookup, lto_varpool_encoder_deref, lto_varpool_encoder_size,
	lto_varpool_encoder_encode_initializer_p,
	lto_set_varpool_encoder_encode_initializer): New functions.
	(lto_output_cgraph): Take vset parameter too; compute varpool encoder;
	call output_varpool.
	(input_varpool_node): Do not always set analyzed.
	(input_cgraph_1): Return vector of cgraph nodes.
	(input_varpool_1): Return vector of varpools.
	(input_cgraph): Free the vectors.
	* lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
	output only initializers needed.
	(lto_output): Only call output_cgraph.
	(produce_asm_for_decls): Call lto_varpool_encoder_delete.
	* lto-section-out.c (lto_new_out_decl_state): Initialize
	state->varpool_node_encoder.
	* lto-streamer.h (lto_varpool_encoder_d): New.
	(lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.	
	(lto_cgraph_encoder_delete, output_cgraph): Update prototype.
	(lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
	lto_varpool_encoder_encode, lto_varpool_encoder_delete,
	lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
	Declare.
	(output_varpool, input_varpool): Remove declarations.

	* lto.c (lto_1_to_1_map): Partition only needed nodes.

From-SVN: r159062
2010-05-05 10:21:42 +00:00
Jan Hubicka 9e0546efa3 lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable with body can prevail.
* lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
	with body can prevail.

	* lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
	size.

From-SVN: r159061
2010-05-05 10:20:38 +00:00
Laurynas Biveinis 0277fabf2b Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to
	dependencies.

	* gengtype.h (erro_at_line): Constify pos argument.

	* gengtype.c: Include hashtab.h.
	(enum gc_used): Document GC_MAYBE_POINTED_TO.
	(error_at_line): Constify pos argument.
	(do_typedef): Initialize p->opt field.
	(get_file_gtfilename): Fix comment typo.
	(struct walk_type_data): Constify line field.
	(get_output_file_for_structure): New function.
	(write_local_func_for_structure): Constify orig_s argument.
	Use get_output_file_for_structure.
	(write_func_for_structure): Use get_output_file_for_structure.
	(INDENT): New define.
	(dump_pair, dump_type, dump_type_list, dump_typekind)
	(dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
	(dump_type_u_a, dump_type_u_param_struct, dump_everything): New
	functions.
	(seen_types): New variable.
	(main): New variable do_dump.  Process "-d" command line option.
	Call dump_everything if dump requested.

From-SVN: r159060
2010-05-05 10:06:37 +00:00
Jakub Jelinek b0576159e4 Fix up ChangeLog entry.
From-SVN: r159059
2010-05-05 11:26:26 +02:00
Jakub Jelinek dbb2a2cba8 var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value in a temporary instead of invoking the macro...
* var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
	in a temporary instead of invoking the macro multiple times.
	(track_expr_p): Likewise.

From-SVN: r159058
2010-05-05 11:25:01 +02:00
Neil Vachharajani 650cfcab96 Sanitize the behavior of -Wcoverage-mismatch.
2010-05-04  Neil Vachharajani <nvachhar@google.com>

        * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
        per new semantics.
        * opts.c (decode_options): Enable -Werror=coverage-mismatch.
        * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
        conditions for printing notes.
        * common.opt (-Wcoverage-mismatch): Allow negative, default to
        true, update documentation.
        * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
        * testsuite/gcc.dg/tree-prof/wcoverage-mismatch.c: Adjusted.

From-SVN: r159050
2010-05-04 23:45:58 +00:00
Jakub Jelinek 97e3c92355 re PR c/43981 (-Wunused-but-set-variable does not consider array sizing use of a variable)
PR c/43981
	* c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
	on dimen.

	* gcc.dg/Wunused-var-8.c: New test.

From-SVN: r159044
2010-05-04 21:08:37 +02:00