Commit Graph

113093 Commits

Author SHA1 Message Date
David S. Miller
015e8b63f4 Allow zero operand in sparc VIS3 cmask patterns.
* config/sparc/sparc.md (cmask patterns): Allow zero operand.

From-SVN: r180715
2011-10-31 15:09:12 -07:00
Ian Lance Taylor
7e547d7b31 syscall: Fix Errstr on systems without strerror_r.
From-SVN: r180714
2011-10-31 21:55:22 +00:00
David S. Miller
82a5950228 Invalidate cached next real insn in dwarf2out_end_epilogue().
* dwarf2out.c (cached_next_real_insn): New.
	(dwarf2out_end_epilogue): Set it to NULL_RTX.
	(dwarf2out_var_location): Remove cached_next_real_insn local static.

From-SVN: r180713
2011-10-31 14:51:22 -07:00
Ian Lance Taylor
b59546bf65 syscall: Remove a couple more 3-parameter match's in mksyscall.awk.
From-SVN: r180712
2011-10-31 21:47:30 +00:00
Richard Henderson
788a290865 i386: Remove TARGET_VECTORIZE_BUILTIN_CONVERSION.
Renaming all of the insn patterns as needed to the standard
optab forms.  Sadly, only one of the builtins is unused by
the various header files, so most of them must stay around.

        * config/i386/sse.md (floatv8siv8sf2): Rename from avx_cvtdq2ps256.
        (floatv4siv4sf2): Rename from sse2_cvtdq2ps.
        (floatunsv4siv4sf2): Rename from sse2_cvtudq2ps.
        (fix_truncv8sfv8si2): Rename from avx_cvttps2dq256.
        (fix_truncv4sfv4si2): Rename from sse2_cvttps2dq.
        (floatv4siv4df2): Rename from avx_cvtdq2pd256.
        (fix_truncv4dfv4si2): Rename from avx_cvttpd2dq256.
        (vec_unpacku_float_hi_v8si): Update for insn pattern name changes.
        * config/i386/i386.md (splitters for int-float conversion): Likewise.
        * config/i386/i386.c (ix86_split_convert_uns_si_sse): Likewise.
        (bdesc_args): Likewise.
        (enum ix86_builtins) [IX86_BUILTIN_CVTUDQ2PS]: Remove.
        (ix86_vectorize_builtin_conversion): Remove.
        (TARGET_VECTORIZE_BUILTIN_CONVERSION): Remove.

From-SVN: r180709
2011-10-31 12:36:57 -07:00
Jason Merrill
1fb80b0c53 re PR libstdc++/1773 (__cplusplus defined to 1, should be 199711L)
PR libstdc++/1773
	* init.c (cpp_init_builtins): Set __cplusplus for C++11.

From-SVN: r180708
2011-10-31 15:34:26 -04:00
Jason Merrill
97e3ad20b1 re PR c++/50920 (add a -std=c++11 option to the driver)
PR c++/50920
gcc/c-family
	* c-common.h (cxx_dialect): Add cxx11 and cxx03.
	* c.opt: Add -std=c++11, -std=gnu++11, -std=gnu++03,
	and -Wc++11-compat.
	* c-opts.c (set_std_cxx11): Rename from set_std_cxx0x.
gcc/cp
	* class.c (check_field_decl): Change c++0x in diags to c++11.
	* error.c (maybe_warn_cpp0x): Likewise.
	* parser.c (cp_parser_diagnose_invalid_type_name): Likewise.
	* pt.c (check_default_tmpl_args): Likewise.
libcpp
	* include/cpplib.h (enum c_lang): Rename CLK_CXX0X to CLK_CXX11,
	CLK_GNUCXX0X to CLK_GNUCXX11.
libstdc++-v3
	* include/bits/c++0x_warning.h: Change -std=c++0x to -std=c++11.

From-SVN: r180707
2011-10-31 15:34:14 -04:00
Martin Jambor
fdb0e1b4bc ipa-prop.c (mark_modified): Moved up in the file.
2011-10-31  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.c (mark_modified): Moved up in the file.
	(is_parm_modified_before_call): Renamed to
	is_parm_modified_before_stmt, moved up in the file.
	(load_from_unmodified_param): New function.
	(compute_complex_assign_jump_func): Also attempt to create pass
	through jump functions for values loaded from (addressable)
	parameters.

	* testsuite/gcc.dg/ipa/ipcp-4.c: New test.

From-SVN: r180705
2011-10-31 18:43:25 +01:00
Jakub Jelinek
aa9480274f tree-vect-stmts.c (vectorizable_shift): If op1 is vect_external_def in a loop and has different type from op0...
* tree-vect-stmts.c (vectorizable_shift): If op1 is vect_external_def
	in a loop and has different type from op0, cast it to op0's type
	before the loop first.  For slp give up.  Don't crash if op1_vectype
	is NULL.

	* gcc.dg/vshift-3.c: New test.
	* gcc.dg/vshift-4.c: New test.
	* gcc.dg/vshift-5.c: New test.

From-SVN: r180704
2011-10-31 17:52:19 +01:00
Janne Blomqvist
08810e5257 Update file position for inquire lazily.
libgfortran ChangeLog:

2011-10-31  Janne Blomqvist  <jb@gcc.gnu.org>

	* io/inquire.c (inquire_via_unit): Check whether we're at the
	beginning or end if the position is unspecified. If the position
	is not one of the 3 standard ones, return unspecified.
	* io/io.h (update_position): Remove prototype.
	* io/transfer.c (next_record): Set the position to unspecified,
	letting inquire figure it out more exactly when needed.
	* io/unit.c (update_position): Remove function.


testsuite ChangeLog:

2011-10-31  Janne Blomqvist  <jb@gcc.gnu.org>

	* gfortran.dg/inquire_5.f90: Update testcase to match the standard
	and current implementation.

From-SVN: r180703
2011-10-31 16:59:19 +02:00
Janne Blomqvist
3469bd8660 Introduce a size member function to struct stream.
2011-10-31  Janne Blomqvist  <jb@gcc.gnu.org>

	* io/unix.h (struct stream): Add size function pointer.
	(ssize): New inline function.
	(file_length): Remove prototype.
	* io/unix.c (raw_size): New function.
	(raw_init): Initialize st.size pointer.
	(buf_size): New function.
	(buf_init): Initialize st.size pointer.
	(open_internal): Likewise.
	(open_internal4): Likewise.
	(file_length): Remove function.
	* io/file_pos.c (st_rewind): Use ssize instead of file_length.
	* io/open.c (test_endfile): Likewise.
	* io/transfer.c (data_transfer_init): Likewise.
	(next_record_r): Likewise.
	(next_record_w): Likewise.
	* io/unit.c (update_position): Likewise.

From-SVN: r180702
2011-10-31 16:52:26 +02:00
Janne Blomqvist
7d5ee21935 Simplify handling of special files.
2011-10-31  Janne Blomqvist  <jb@gcc.gnu.org>

* io/file_pos.c (st_rewind): Handle regular and special files
identically.
* io/intrinsics.c (fseek_sub): Don't check whether we think the
file is seekable, just do what the caller says.
* io/transfer.c (skip_record): First try to seek, then fallback to
reading and throwing away what we read.
* io/unit.c (update_position): Don't check whether file is
seekable, just try to do what we're told.
(unit_truncate): Likewise.
* io/unix.c (struct unix_stream): Remove special_file flag.
(buf_flush): Remove code for handling unseekable files.
(buf_seek): Likewise.
(fd_to_stream): Use buffered IO only for regular files.
(file_length): Remove is_seekable() call.
(is_seekable): Remove function.
(is_special): Likewise.
* io/unix.h: Remove prototypes for is_seekable and is_special.

From-SVN: r180701
2011-10-31 16:45:50 +02:00
Paul Brook
2062f77b8b cgraphunit.c: Don't mark clones as static constructors.
2011-10-31  Paul Brook  <paul@codesourcery.com>

	gcc/
	* cgraphunit.c: Don't mark clones as static constructors.

	gcc/testsuite/
	* gcc.dg/constructor-1.c: New test.

From-SVN: r180700
2011-10-31 14:26:38 +00:00
David Edelsohn
41bd49ea5f gcc-ar: Do not include stdio.h.
* gcc-ar: Do not include stdio.h.

From-SVN: r180699
2011-10-31 10:04:50 -04:00
Diego Novillo
596c138175 mangle.c (get_mangled_id): Factor from ...
* mangle.c (get_mangled_id): Factor from ...
	(mangle_decl): ... here.
	Call get_mangled_id.

From-SVN: r180698
2011-10-31 10:04:19 -04:00
Diego Novillo
875b35b4da tree-streamer-out.c (pack_ts_base_value_fields): Emit TYPE_ADDR_SPACE.
* tree-streamer-out.c (pack_ts_base_value_fields): Emit
	TYPE_ADDR_SPACE.
	* tree-streamer-in.c (unpack_ts_base_value_fields): Read
	TYPE_ADDR_SPACE.

From-SVN: r180697
2011-10-31 10:03:32 -04:00
David S. Miller
f6b29aeb1e Slight improvements to vec_init code gen on sparc.
* config/sparc/sparc.c (vector_init_bshuffle): New function.
	(vector_init_fpmerge): New function.
	(sparc_expand_vector_init): Use them to improve non-const cases.

From-SVN: r180696
2011-10-30 23:24:26 -07:00
David S. Miller
ea2fa34166 Handle many consecutive location notes more efficiently in dwarf2.
* dwarf2out.c (dwarf2out_var_location): When processing several
	consecutive location notes, cache the result of next_real_insn().

From-SVN: r180695
2011-10-30 18:48:15 -07:00
GCC Administrator
9ceb54d132 Daily bump.
From-SVN: r180694
2011-10-31 00:18:12 +00:00
Steven G. Kargl
508b144c87 symbol.c (gfc_free_charlen): Whitespace.
2011-10-30  Steven G. Kargl  <kargl@gcc.gnu.org>

	* symbol.c (gfc_free_charlen): Whitespace.

From-SVN: r180687
2011-10-30 22:31:10 +00:00
Steven G. Kargl
05168bb71e re PR other/50573 (configure lists --with-gnu-ld twice)
2011-10-30  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/50573
	* check.c (gfc_check_dshift): Update argument checking for BOZ.
	Update checking SHIFT against BITSIZE of I or J.
	* intrinsic.texi: Update docs for DSHIFTL and DSHIFTR.

2011-10-30  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/50573
	* gfortran.dg/dshift_3.f90: New test.

From-SVN: r180686
2011-10-30 21:59:24 +00:00
Uros Bizjak
da957891ff i386.md (avx2_vec_dup<mode>): Macroize insn from avx2_vec_dup{v8sf,v4sf} using VF1 mode iterator.
* config/i386/i386.md (avx2_vec_dup<mode>): Macroize insn from
	avx2_vec_dup{v8sf,v4sf} using VF1 mode iterator.
	(vec_dupv4sf): Remove expander.
	(vec_dupv4sf): Merge from *vec_dupv4sf and *vec_dupv4sf_avx.
	(vec_dupv2df): Remove expander.
	(vec_dupv2df): Merge from *vec_dupv2df and *vec_dupv2df_sse3.
	(*vec_concatv2df): Merge *vec_concatv2df_sse3.
	(*vec_dupv4si): Merge *vec_dupv4si_avx.
	(*vec_dupv2di): Merge *vec_dupv2di_sse3.

From-SVN: r180685
2011-10-30 18:48:46 +01:00
Dmitry Plotnikov
9db8f45d5d tree-cfg.c (verify_gimple_assign_unary): Allow vector conversions.
2011-10-30  Dmitry Plotnikov  <dplotnikov@ispras.ru>

        * tree-cfg.c (verify_gimple_assign_unary): Allow vector conversions.
        * optabs.c (supportable_convert_operation): New function.
        * optabs.h (supportable_convert_operation): New prototype.
        * tree-vect-stmts.c (vectorizable_conversion): Change condition and
        behavior for NONE modifier case.
        * tree.h (VECTOR_INTEGER_TYPE_P): New macro.

From-SVN: r180684
2011-10-30 10:12:02 -07:00
Joseph Myers
9814fdd618 * ja.po: Update.
From-SVN: r180682
2011-10-30 16:28:46 +00:00
Gerald Pfeifer
845f6341a3 prerequisites.xml: Refer to GCC (instead of gcc) and GNU/Linux.
* prerequisites.xml: Refer to GCC (instead of gcc) and GNU/Linux.
	Remove an obsolete reference to a Red Hat release we do not
	support any longer.
	Refer to Debian GNU/Linux.

From-SVN: r180681
2011-10-30 15:33:11 +00:00
John David Anglin
369a98f06d scal-to-vec2.c (dg-options): Add -fno-common to options on hppa*-*-hpux*.
* gcc.dg/scal-to-vec2.c (dg-options): Add -fno-common to options on
	hppa*-*-hpux*.
	* gcc.dg/torture/vshuf-v8hi.c: Likewise.
	* gcc.dg/torture/vshuf-v4si.c: Likewise.
	* gcc.dg/torture/vshuf-v8si.c: Likewise.
	* gcc.dg/torture/vshuf-v32qi.c: Likewise.
	* gcc.dg/torture/vshuf-v4di.c: Likewise.
	* gcc.dg/torture/vshuf-v2df.c: Likewise.
	* gcc.dg/torture/vshuf-v16qi.c: Likewise.
	* gcc.dg/torture/vshuf-v4sf.c: Likewise.
	* gcc.dg/torture/vshuf-v8sf.c: Likewise.
	* gcc.dg/torture/vshuf-v2di.c: Likewise.
	* gcc.dg/torture/vshuf-v16hi.c: Likewise.
	* gcc.dg/torture/vshuf-v4df.c: Likewise.
	* gcc.dg/tree-ssa/ssa-fre-31.c: Likewise.
	* gcc.dg/tree-ssa/ssa-fre-33.c: Likewise.
	* gcc.dg/tree-ssa/ssa-fre-34.c: Likewise.
	* gcc.dg/vector-compare-2.c: Likewise.

From-SVN: r180680
2011-10-30 14:33:33 +00:00
Gerald Pfeifer
391190a3f0 faq.xml (Who's in charge of it?): Refer to the Linux kernel instead of just Linux.
* faq.xml (Who's in charge of it?): Refer to the Linux kernel
	instead of just Linux.
	(How do I install libstdc++?): Refer to GNU/Linux instead of
	just Linux.

From-SVN: r180679
2011-10-30 14:29:15 +00:00
Gerald Pfeifer
7d2447313f NEWS (GCC 2.95): Refer to GNU/Linux instead of Linux.
* NEWS (GCC 2.95): Refer to GNU/Linux instead of Linux.
	(EGCS 1.0): Ditto.

From-SVN: r180678
2011-10-30 14:17:22 +00:00
Jakub Jelinek
732a0ad314 tree-vectorizer.h (NUM_PATTERNS): Bump to 9.
* tree-vectorizer.h (NUM_PATTERNS): Bump to 9.
	* tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): New
	function.
	(vect_vect_recog_func_ptrs): Add it.

From-SVN: r180677
2011-10-30 13:16:01 +01:00
Eric Botcazou
be7552fc7d Fix minor issues
From-SVN: r180675
2011-10-30 09:16:23 +00:00
David S. Miller
dbeee82924 Properly limit backwards label scanning in reorg.
* reorg.c (label_before_next_insn): New function.
	(relax_delay_slots): Use it instead of prev_label.
	* rtl.h (prev_label): Delete declaration.
	* emit-rtl.c (prev_label): Remove.

From-SVN: r180674
2011-10-30 00:48:05 -07:00
Revital Eres
cc1efdff70 Fix marking of SMSed loops as BB_DISABLE_SCHEDULE
From-SVN: r180673
2011-10-30 05:12:53 +00:00
Paolo Carlini
6908120ace re PR c++/50901 (ICE: in build_new_op, at cp/call.c:5016)
/cp
2011-10-29  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50901
	* call.c (build_new_op_1): Handle ABS_EXPR together with the
	other unary EXPR.

/testsuite
2011-10-29  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50901
	* g++.dg/cpp0x/pr50901.C: New.

From-SVN: r180670
2011-10-30 00:22:53 +00:00
GCC Administrator
450dfc1951 Daily bump.
From-SVN: r180669
2011-10-30 00:17:43 +00:00
John David Anglin
ae9d61aba6 re PR target/50617 (ICE: RTL flag check: INSN_ANNULLED_BRANCH_P used with unexpected rtx code 'simplify_immed_subreg' in output_bb, at config/pa/pa.c:6631)
PR target/50617
	* config/pa/protos.h (attr_length_save_restore_dltp): Delete.
	(cmpib_comparison_operator): Likewise.
	(following_cal, output_and, output_ior, output_move_double,
	output_fp_move_double, output_block_move, output_block_clear,
	output_cbranch, output_lbranch, output_bb, output_bvb, output_dbra,
	output_movb, output_parallel_movb, output_parallel_addb, output_call,
	output_indirect_call, output_millicode_call, output_mul_insn,
	output_div_insn, output_mod_insn, singlemove_string,
	output_arg_descriptor, output_global_address, print_operand,
	legitimize_pic_address, hppa_encode_label, symbolic_expression_p,
	fmpyaddoperands, fmpysuboperands, emit_bcond_fp, emit_move_sequence,
	emit_hpdiv_const, is_function_label_plus_const, jump_in_call_delay,
	hppa_fpstore_bypass_p, attr_length_millicode_call, attr_length_call,
	attr_length_indirect_call, return_addr_rtx, function_arg_padding,
	insn_refs_are_delayed, get_deferred_plabel, ldil_cint_p, zdepi_cint_p,
	output_ascii, compute_frame_size, and_mask_p, cint_ok_for_move,
	hppa_expand_prologue, hppa_expand_epilogue, ior_mask_p,
	compute_zdepdi_operands, output_64bit_and, output_64bit_ior,
	reloc_needed, magic_milli, shadd_constant_p): Consistently prefix
	exported functions and variables with "pa_".
	* config/pa/predicates.md: Likewise.
	* config/pa/pa64-hpux.h: likewise.
	* config/pa/som.h: Likewise.
	* config/pa/elf.h: Likewise.
	* config/pa/pa64-linux.h: Likewise.
	* config/pa/pa.md: Likewise.
	* config/pa/pa.c: Likewise.
	* config/pa/pa-linux.h: Likewise.
	* config/pa/pa.h: Likewise.
	* config/pa/constraints.md: Likewise.

From-SVN: r180660
2011-10-29 18:58:48 +00:00
Uros Bizjak
b99f906a4e i386.md (xop_sha<mode>3): Rename from xop_ashl<mode>3.
* config/i386/i386.md (xop_sha<mode>3): Rename from xop_ashl<mode>3.
	Update all uses.
	(xop_shl<mode>3): Rename from xop_lshl<mode>3.  Update all uses.
	* config/i386/i386.c: Update all uses.

From-SVN: r180659
2011-10-29 20:38:27 +02:00
Uros Bizjak
f327a48e6e i386.md (lshlv16qi3): Remove expander.
* config/i386/i386.md (lshlv16qi3): Remove expander.
	(lshrv16qi3): New expander.
	(<shift_insn>v16qi3): Macroize expander from ashrv16qi3 and lshrv16qi3
	using any_shiftrt code iterator. Cleanup.
	(ashlv16qi3): Cleanup.
	(ashrv2di3): Ditto.

From-SVN: r180657
2011-10-29 19:51:24 +02:00
Uros Bizjak
d1fecc879e fma-check.h (main): Use return 0 instead of exit (0).
* gcc.target/i386/fma-check.h (main): Use return 0 instead of exit (0).
	* gcc.target/i386/fma4-check.h (main): Ditto.
	* gcc.target/i386/xop-check.h (main): Ditto.

From-SVN: r180656
2011-10-29 19:26:48 +02:00
John David Anglin
9a20164505 re PR target/50691 (Incorrect argument evaluation in call with __thread argument)
PR target/50691
	config/pa/pa.c (emit_move_sequence): Legitimize TLS symbol references.
	(pa_legitimate_constant_p): Return false for TLS_MODEL_GLOBAL_DYNAMIC
	and TLS_MODEL_LOCAL_DYNAMIC symbol references.

From-SVN: r180655
2011-10-29 15:57:00 +00:00
Georg-Johann Lay
d702f362b5 re PR target/50887 ([avr] Support ACCUMULATE_OUTGOING_ARGS)
PR target/50887
	* config/avr/avr.opt (-maccumulate-args): New option.
	* config/avr/avr.h (STARTING_FRAME_OFFSET): Redefine to
	avr_starting_frame_offset.
	(ACCUMULATE_OUTGOING_ARGS): Define to avr_accumulate_outgoing_args.
	* config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): Remove.
	(UNSPECV_WRITE_SP_IRQ_OFF): Remove.
	(UNSPECV_WRITE_SP): New constant.
	(*addhi3_sp_R): Rewrite to...
	(*addhi3_sp): ...this new insn.
	(movhi_sp_r_irq_off, movhi_sp_r_irq_on): Combine to...
	(movhi_sp_r): ...this new insn.
	* config/avr/avr-protos.h (avr_accumulate_outgoing_args): New.
	(avr_starting_frame_offset): New.
	* config/avr/avr.c (avr_accumulate_outgoing_args): New function.
	(avr_starting_frame_offset): New function.
	(avr_outgoing_args_size): New static function.
	(avr_initial_elimination_offset): Use it.
	(avr_simple_epilogue): Use it.
	(avr_asm_function_end_prologue): Use it.
	(expand_epilogue): Use it.
	(expand_prologue): Use it.  Break out code to...
	(avr_prologue_setup_frame): ...this new static function.
	(avr_can_eliminate): Allow eliminating to frame pointer if there
	is one.
	(avr_frame_pointer_required_p): Use frame pointer if target has a
	nonlocal label.
	* config/avr/constraints.md (R): Remove.
	(Csp): New constraint.
	* config/avr/predicates.md (avr_sp_immediate_operand): Use it.

From-SVN: r180654
2011-10-29 14:35:59 +00:00
Iain Sandoe
f439d6bad9 re PR target/47997 (gcc on macosx: "ld: warning: -fwritable-strings not compatible with literal CF/NSString")
gcc/objc:

	PR target/47997
	* objc-act.c (objc_build_string_object): Remove redundant second
	call to fix_string_type ().  Add a checking assert that we are,
	indeed, passed a STRING_CST.

From-SVN: r180653
2011-10-29 12:59:30 +00:00
Andi Kleen
7a59e22a63 Fix cross compilation build in gcc-ar
gcc/:
2011-10-29  Andi Kleen  <ak@linux.intel.com>

	* gcc-ar.c (target_machine): Add.

From-SVN: r180652
2011-10-29 09:23:23 +00:00
Anatoly Sokolov
a08160c31c cris.c (reg_ok_for_base_p, [...]): New functions.
* config/cris/cris.c (reg_ok_for_base_p, reg_ok_for_index_p,
	cris_constant_index_p, cris_base_p, cris_index_p,
	cris_base_or_autoincr_p, cris_bdap_index_p, cris_biap_index_p,
	cris_legitimate_address_p): New functions.
	(TARGET_LEGITIMATE_ADDRESS_P): Define.
	(cris_pic_symbol_type, cris_valid_pic_const): Change arguments type
	from rtx to const_rtx.
	(cris_print_operand_address, cris_address_cost,
	cris_side_effect_mode_ok):  Use
	cris_constant_index_p, cris_base_p, cris_base_or_autoincr_p,
	cris_biap_index_p and cris_bdap_index_p.
	* config/cris/cris.h (CONSTANT_INDEX_P, BASE_P, BASE_OR_AUTOINCR_P,
	BDAP_INDEX_P, BIAP_INDEX_P, GO_IF_LEGITIMATE_ADDRESS,
	REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
	(EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_R, EXTRA_CONSTRAINT_T): Use
	cris_constant_index_p, cris_base_p, cris_base_or_autoincr_p,
	cris_biap_index_p and cris_bdap_index_p.
	* config/cris/cris.md (moversideqi movemsideqi peephole2): Use
	cris_base_p.
	* config/cris/cris-protos.h (cris_constant_index_p, cris_base_p,
	cris_base_or_autoincr_p, cris_bdap_index_p, cris_biap_index_p): New
	prototype.
	(cris_pic_symbol_type, cris_valid_pic_const): Update prototype.

From-SVN: r180651
2011-10-29 13:08:13 +04:00
Andi Kleen
3bc5016331 Use more efficient alignment in ggc
Jakub had some concerns about the performance of page alignments in
ggc-page, which use a hardware division instructions currently.
This patch changes them all to use a new PAGE_ALIGN macro, which
exploits that pages are a power of two.

gcc/:
2011-10-21  Andi Kleen  <ak@linux.intel.com>

	* ggc-page (PAGE_ALIGN): Add.
	(alloc_page, ggc_pch_total_size, ggc_pch_this_base, ggc_pch_read):
	Replace ROUND_UP with PAGE_ALIGN.

From-SVN: r180650
2011-10-29 01:02:35 +00:00
Andi Kleen
25f0ea8135 Add a fragmentation fallback in ggc-page v2
There were some concerns that the earlier munmap patch could lead
to address space being freed that cannot be allocated again
by ggc due to fragmentation. This patch adds a fragmentation
fallback to solve this: when a GGC_QUIRE_SIZE sized allocation fails,
try again with a page sized allocation.

Passes bootstrap and testing on x86_64-linux with the fallback
forced artificially.

v2: fix missed initialization bug added in last minute edit.

gcc/:
2011-10-20  Andi Kleen  <ak@linux.intel.com>

	* ggc-page (alloc_anon): Add check argument.
	(alloc_page): Add fallback to 1 page allocation.
	Adjust alloc_anon calls to new argument.

From-SVN: r180649
2011-10-29 01:02:14 +00:00
Andi Kleen
d33ef9a52b Free large chunks in ggc v2
This implements the freeing back of large chunks in the ggc madvise path
Richard Guenther asked for.  This way on systems with limited
address space malloc() and other allocators still have
a chance to get back at some of the memory ggc freed. The
fragmented pages are still just given back, but the address space
stays allocated.

I tried freeing only aligned 2MB areas to optimize for 2MB huge
pages, but the hit rate was quite low, so I switched to 1MB+
unaligned areas.

v2: Hardcode free unit size instead of param

gcc/:
2011-10-18  Andi Kleen  <ak@linux.intel.com>

	* ggc-page (release_pages): First free large continuous
	chunks in the madvise path.

From-SVN: r180648
2011-10-29 01:01:54 +00:00
Andi Kleen
bf72b0094a Add missing page rounding of a page_entry
This one place in ggc forgot to round page_entry->bytes to the
next page boundary, which lead to all the heuristics in freeing to
check for continuous memory failing. Round here too, like all other
allocators already do. The memory consumed should be the same
for MMAP because the kernel would round anyways. It may slightly
increase memory usage when malloc groups are used.

This will also increase the hitrate on the free page list
slightly.

gcc/:

2011-10-18  Andi Kleen  <ak@linux.intel.com>

	* ggc-page.c (alloc_pages): Always round up to entry_size.

From-SVN: r180647
2011-10-29 01:01:34 +00:00
GCC Administrator
3b6a5655d7 Daily bump.
From-SVN: r180646
2011-10-29 00:18:56 +00:00
Andi Kleen
b6b8921515 Add gcc-ar/nm/ranlib wrappers for slim LTO v2
gcc/:
2011-10-19  Andi Kleen  <ak@linux.intel.com>

	* Makefile.in (MOSTLYCLEANFILES): Add gcc-ar/nm/ranlib.
	(native): Add gcc-ar, gcc-nm, gcc-ranlib.
	(AR_LIBS, gcc-ar, gcc-ar.o, gcc-ranlib, gcc-ranlib.o,
         gcc-nm, gcc-nm.o, gcc-ranlib.c, gcc-nm.c): Add.
	(install): Depend on install-gcc-ar.
	(install-gcc-ar): Add.
	(uninstall): Uninstall gcc-ar, gcc-nm, gcc-ranlib.
	* gcc-ar.c: Add new file.

From-SVN: r180642
2011-10-29 00:10:36 +00:00
Ian Lance Taylor
d6b0f0f14f * setproctitle.c (setproctitle): Use "GNU/Linux" in comment.
From-SVN: r180641
2011-10-29 00:09:39 +00:00