Commit Graph

142822 Commits

Author SHA1 Message Date
Venkataramanan Kumar
6b8320bc8b tree-if-conv.c (struct ifc_dr): Add new tree base_predicate field.
2015-11-30  Venkataramanan Kumar  <Venkataramanan.Kumar@amd.com>

	* tree-if-conv.c (struct ifc_dr): Add new tree
	base_predicate field.
	(hash_memrefs_baserefs_and_store_DRs_read_written_info): Hash
	base ref, DR pairs and store base_predicate for write type DRs.
	(ifcvt_memrefs_wont_trap): Guard checks with
	-ftree-loop-if-convert-stores flag.

From-SVN: r231057
2015-11-30 07:59:54 +00:00
GCC Administrator
efb72c29ea Daily bump.
From-SVN: r231056
2015-11-30 00:16:14 +00:00
Matthias Klose
597432ed16 re PR ada/68564 (Ada fails to bootstrap on sparc64-linux-gnu)
2015-11-29  Matthias Klose  <doko@ubuntu.com>

        PR ada/68564
        * gcc-interface/Makefile.in: Fix powerpc/powerpc64* and
        mipsel/mips64el bitness detection. 
        Merge the mipsel/mips64el definitions into one.

From-SVN: r231051
2015-11-29 22:41:00 +00:00
Jan Hubicka
f1703a2e2b cgraph.c (cgraph_node::make_local): No name is unique during incremental linking.
* cgraph.c (cgraph_node::make_local): No name is unique during
	incremental linking.
	* cgraph.h (can_be_discarded_p): Update comment; also common and
	WEAK in named sections can be discarded; when doing incremental
	link do not rely on resolution being the final one.
	* varasm.c (default_binds_local_p_3, decl_binds_to_current_def_p):
	When symbol can be discarded, do not rely on resolution info.
	* symtab.c (symtab_node::nonzero_address): Take into account that
	symbol can be discarded.
	* ipa-visibility.c (update_visibility_by_resolution_info): Handle
	definition correctly.
	(function_and_variable_visibility): Do not set unique_name when
	incrementally linking.

From-SVN: r231050
2015-11-29 22:33:23 +00:00
Jan Hubicka
a4850ce9b5 re PR c/67106 (ICE: verify_type failed: type variant differs by TYPE_PACKED. with -g -fpack-struct)
PR c/67106
	* gcc.c-torture/compile/pr67106.c: New testcase.
	* c-decl.c: Set TYPE_PACKED in variants.

From-SVN: r231049
2015-11-29 19:50:04 +00:00
Jan Hubicka
75c8aac3ce re PR c++/67581 (ICE on transparent union with -g enabled on x86_64-linux-gnu (verify_type failed))
PR c/67581
	* g++.dg/torture/pr67581.C: New testcase.
	* c-family/c-common.c (handle_transparent_union_attribute): Update
	also type variants.

From-SVN: r231048
2015-11-29 19:48:45 +00:00
Nathan Sidwell
7f091e1c5a nvptx.md (const_0_operand, [...]): Delete.
* config/nvptx/nvptx.md (const_0_operand, global_mem_operand,
	const_mem_operand, param_mem_operand, shared_mem_operand): Delete.
	(ctrap<mode>): Use const0_operand.

From-SVN: r231047
2015-11-29 18:54:41 +00:00
Jan Hubicka
d737fed99b ipa-devirt.c (add_type_duplicate): Remove redundant ODR violation dump
* ipa-devirt.c (add_type_duplicate): Remove redundant ODR violation
	dump

From-SVN: r231046
2015-11-29 18:51:28 +00:00
David Edelsohn
9ddc16eb1a re PR target/28115 (possible bug in recog_memoized usage in rs6000.c??)
PR target/28115
* config/rs6000/rs6000.c (rs6000_adjust_cost): Correct
recog_memoized test for insn and check recog_memoized for dep_insn.

From-SVN: r231045
2015-11-29 13:11:54 -05:00
GCC Administrator
8eb7b6f69d Daily bump.
From-SVN: r231042
2015-11-29 00:16:15 +00:00
Nathan Sidwell
be04451f73 Add to correct changelog
From-SVN: r231039
2015-11-28 23:25:48 +00:00
Nathan Sidwell
01be58559c nvptx.h (FIRST_PARM_OFFSET): Add void cast.
* config/nvptx/nvptx.h (FIRST_PARM_OFFSET): Add void cast.
	(FRAME_POINTER_CFA_OFFSET): Define.
	(struct nvptx_args): Use 'tree' type.
	(INIT_CUMULATIVE_ARGS): Remove unnecessary do...while.

From-SVN: r231038
2015-11-28 23:24:20 +00:00
Tom de Vries
cdde47a670 Handle flinker-output in lto-wrapper
2015-11-28  Tom de Vries  <tom@codesourcery.com>

	* lto-wrapper.c (run_gcc): Handle -flinker-output argument.

From-SVN: r231033
2015-11-28 16:26:01 +00:00
Matthias Klose
c14826cfc9 re PR ada/68564 (Ada fails to bootstrap on sparc64-linux-gnu)
2015-11-28  Matthias Klose  <doko@ubuntu.com>

        PR ada/68564
        * gcc-interface/Makefile.in: Fix sparc/sparc64 bitness detection.

From-SVN: r231028
2015-11-28 02:39:20 +00:00
GCC Administrator
09a49a482c Daily bump.
From-SVN: r231027
2015-11-28 00:16:12 +00:00
Jakub Jelinek
8e4e471966 re PR libgomp/68579 (FAIL: libgomp.c/target-32.c execution test)
PR libgomp/68579
	* task.c (gomp_task_run_post_handle_depend_hash): New forward decl.
	(gomp_create_target_task): Call it before freeing
	GOMP_TARGET_TASK_DATA tasks.

From-SVN: r231023
2015-11-27 20:33:33 +01:00
Jonathan Wakely
2c2176f518 Copy-edit the Option Summary in invoke.texi
* doc/invoke.texi (Option Summary): Use negative form of
	-Waggressive-loop-optimizations, remove redundant -Wpedantic-ms-format,
	sort alphabetically and re-justify.

From-SVN: r231022
2015-11-27 18:38:48 +00:00
Vladimir Makarov
0b87be09b0 re PR rtl-optimization/68536 (LRA ICEs with new arm pattern)
2015-11-27  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/68536
	* lra.c (lra_emit_add): Add code for null base.
	* lra-constraints.c (curr_insn_transform): Skip operators for
	subreg reloads.

From-SVN: r231021
2015-11-27 18:26:12 +00:00
Pedro Alves
921da19854 PR other/61321 - demangler crash on casts in template parameters
The fix for bug 59195:

 [C++ demangler handles conversion operator incorrectly]
 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59195

unfortunately makes the demangler crash due to infinite recursion, in
case of casts in template parameters.

For example, with:

 template<int> struct A {};
 template <typename Y> void function_temp(A<sizeof ((Y)(999))>) {}
 template void function_temp<int>(A<sizeof (int)>);

The 'function_temp<int>' instantiation above mangles to:

  _Z13function_tempIiEv1AIXszcvT_Li999EEE

The demangler parses this as:

typed name
  template
    name 'function_temp'
    template argument list
      builtin type int
  function type
    builtin type void
    argument list
      template                          (*)
        name 'A'
        template argument list
          unary operator
            operator sizeof
            unary operator
              cast
                template parameter 0    (**)
              literal
                builtin type int
                name '999'

And after the fix for 59195, due to:

 static void
 d_print_cast (struct d_print_info *dpi, int options,
	       const struct demangle_component *dc)
 {
 ...
   /* For a cast operator, we need the template parameters from
      the enclosing template in scope for processing the type.  */
   if (dpi->current_template != NULL)
     {
       dpt.next = dpi->templates;
       dpi->templates = &dpt;
       dpt.template_decl = dpi->current_template;
     }

when printing the template argument list of A (what should be "<sizeof
(int)>"), the template parameter 0 (that is, "T_", the '**' above) now
refers to the first parameter of the the template argument list of the
'A' template (the '*' above), exactly what we were already trying to
print.  This leads to infinite recursion, and stack exaustion.  The
template parameter 0 should actually refer to the first parameter of
the 'function_temp' template.

Where it reads "for the cast operator" in the comment in d_print_cast
(above), it's really talking about a conversion operator, like:

  struct A { template <typename U> explicit operator U(); };

We don't want to inject the template parameters from the enclosing
template in scope when processing a cast _expression_, only when
handling a conversion operator.

The problem is that DEMANGLE_COMPONENT_CAST is currently ambiguous,
and means _both_ 'conversion operator' and 'cast expression'.

Fix this by adding a new DEMANGLE_COMPONENT_CONVERSION component type,
which does what DEMANGLE_COMPONENT_CAST does today, and making
DEMANGLE_COMPONENT_CAST just simply print its component subtree.

I think we could instead reuse DEMANGLE_COMPONENT_CAST and in
d_print_comp_inner still do:

 @@ -5001,9 +5013,9 @@ d_print_comp_inner (struct d_print_info *dpi, int options,
        d_print_comp (dpi, options, dc->u.s_extended_operator.name);
        return;

     case DEMANGLE_COMPONENT_CAST:
       d_append_string (dpi, "operator ");
 -     d_print_cast (dpi, options, dc);
 +     d_print_conversion (dpi, options, dc);
       return;

leaving the unary cast case below calling d_print_cast, but seems to
me that spliting the component types makes it easier to reason about
the code.

g++'s testsuite actually generates three symbols that crash the
demangler in the same way.  I've added those as tests in the demangler
testsuite as well.

And then this fixes PR other/61233 too, which happens to be a
demangler crash originally reported to GDB, at:
https://sourceware.org/bugzilla/show_bug.cgi?id=16957

Bootstrapped and regtested on x86_64 Fedora 20.

Also ran this through GDB's testsuite.  GDB will require a small
update to use DEMANGLE_COMPONENT_CONVERSION in one place it's using
DEMANGLE_COMPONENT_CAST in its sources.

libiberty/
2015-11-27  Pedro Alves  <palves@redhat.com>

        PR other/61321
        PR other/61233
        * demangle.h (enum demangle_component_type)
        <DEMANGLE_COMPONENT_CONVERSION>: New value.
        * cp-demangle.c (d_demangle_callback, d_make_comp): Handle
        DEMANGLE_COMPONENT_CONVERSION.
        (is_ctor_dtor_or_conversion): Handle DEMANGLE_COMPONENT_CONVERSION
        instead of DEMANGLE_COMPONENT_CAST.
        (d_operator_name): Return a DEMANGLE_COMPONENT_CONVERSION
        component if handling a conversion.
        (d_count_templates_scopes, d_print_comp_inner): Handle
        DEMANGLE_COMPONENT_CONVERSION.
        (d_print_comp_inner): Handle DEMANGLE_COMPONENT_CONVERSION instead
        of DEMANGLE_COMPONENT_CAST.
        (d_print_cast): Rename as ...
        (d_print_conversion): ... this.  Adjust comments.
        (d_print_cast): Rewrite - simply print the left subcomponent.
        * cp-demint.c (cplus_demangle_fill_component): Handle
        DEMANGLE_COMPONENT_CONVERSION.

        * testsuite/demangle-expected: Add tests.

From-SVN: r231020
2015-11-27 14:48:21 +00:00
Kyrylo Tkachov
23e4d0b369 Fix FAIL: gcc.c-torture/execute/20050124-1.c -O2 (internal compiler error)
Revert
	2015-11-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* ifcvt.c (insn_valid_noce_process_p): Reject insn if it satisfies
	multiple_sets.
	(noce_try_cmove_arith): Add checking asserts that orig_a and orig_b
	are not modified by the final modified insns in the basic blocks.

From-SVN: r231019
2015-11-27 14:39:34 +00:00
Nathan Sidwell
7b8edc2989 nvptx-protos.h (nvptx_addr_space_from_address): Don't declare.
* config/nvptx/nvptx-protos.h (nvptx_addr_space_from_address):
	Don't declare.
	* config/nvptx/nvptx.c (nvptx_addr_space_from_sym): New.
	(nvptx_maybe_convert_symbolic_operand): Simplify.
	(nvptx_addr_space_from_address): Delete.
	(nvptx_print_operand): Adjust 'A' case.

From-SVN: r231016
2015-11-27 14:22:26 +00:00
Richard Biener
72c0f64330 re PR tree-optimization/68559 (Excessive peeling for gaps)
2015-11-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68559
	* tree-vect-data-refs.c (vect_analyze_group_access_1): Move
	peeling for gap checks ...
	* tree-vect-stmts.c (vectorizable_load): ... here and relax
	for SLP.
	* tree-vect-loop.c (vect_analyze_loop_2): Re-set
	LOOP_VINFO_PEELING_FOR_GAPS before re-trying without SLP.

	* gcc.dg/vect/slp-perm-4.c: Adjust again.
	* gcc.dg/vect/pr45752.c: Likewise.

From-SVN: r231015
2015-11-27 14:17:28 +00:00
Nathan Sidwell
00e5241831 nvptx-protos.h (nvptx_record_needed_decl): Don't declaree.
* config/nvptx/nvptx-protos.h (nvptx_record_needed_decl): Don't
	declaree.
	* config/nvptx/nvptx.c (write_func_decl_from_insn): Move earlier.
	(nvptx_record_fndecl): Don't return value, remove force
	argyment. Require fndecl.
	(nvptx_record_libfunc): New.
	(nvptx_record_needed_decl): Deteermine how to record decl here.
	(nvptx_maybe_record_fnsym): New.
	(nvptx_expand_call): Don't record libfuncs here,
	(nvptx_maybe_convert_symbolic_operand): Use
	nvptx_maye_record_fnsym.
	(nvptx_assemble_integer): Reimplement with single switch.
	(nvptx_output_call_insn): Register libfuncs here.
	(nvptx_file_end): Adjust  nvptx_record_fndecl call.
	* config/nvptx/nvptx.md (expand_movdi): Don't call
	nvptx_record_needed_decl.

From-SVN: r231013
2015-11-27 13:57:09 +00:00
Jakub Jelinek
f574fc3ac5 re PR rtl-optimization/68250 (wrong code at -O2 and -O3 on x86_64-linux-gnu (in 64-bit mode))
PR rtl-optimization/68250
	* gcc.c-torture/execute/pr68250.c: New test.

From-SVN: r231009
2015-11-27 13:12:35 +01:00
Marek Polacek
af719b2d78 * gcc.dg/pr63568.c: Convert to GIMPLE.
From-SVN: r231007
2015-11-27 11:38:46 +00:00
Richard Biener
be377c804b re PR tree-optimization/68553 (gcc.dg/vect/pr68445.c FAILs)
2015-11-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68553
	* tree-vect-slp.c (vect_create_mask_and_perm): Skip VEC_PERM_EXPR
	generation for 1:1 permutations.
	(vect_transform_slp_perm_load): Detect 1:1 permutations.

From-SVN: r231006
2015-11-27 11:17:51 +00:00
Bernd Schmidt
c000cd7c93 Be more careful about barriers when speculating conditional stores.
* gimple.h (nonbarrier_call_p): Declare.
	* gimple.c (nonbarrier_call_p): New function.
	* tree-ssa-phiopt.c (nontrapping_dom_walker::before_dom_children):
	Also increment call phase for ASMs with vdef and potential barrier
	calls.

From-SVN: r231005
2015-11-27 10:05:36 +00:00
Kyrylo Tkachov
4d7b2a8a3b [RTL-ifcvt] Reject insns that are multiple_sets
* ifcvt.c (insn_valid_noce_process_p): Reject insn if it satisfies
	multiple_sets.
	(noce_try_cmove_arith): Add checking asserts that orig_a and orig_b
	are not modified by the final modified insns in the basic blocks.

From-SVN: r231004
2015-11-27 09:52:09 +00:00
Kyrylo Tkachov
14af28ba5a [RTL-ifcvt] PR rtl-optimization/68506: Fix emitting order of insns in IF-THEN-JOIN case
PR rtl-optimization/68506
	* ifcvt.c (noce_try_cmove_arith): Try emitting the else basic block
	first if emit_a exists or then_bb modifies 'b'.  Reindent if-else
	blocks.

	* gcc.c-torture/execute/pr68506.c: New test.

From-SVN: r231003
2015-11-27 09:49:38 +00:00
Martin Liska
b58d3df29f Fix memory leak in cilk
PR c++/68312
	* c-array-notation.c (fix_builtin_array_notation_fn):
	Use release_vec_vec instead of vec::release.
	(build_array_notation_expr): Likewise.
	(fix_conditional_array_notations_1): Likewise.
	(fix_array_notation_expr): Likewise.
	(fix_array_notation_call_expr): Likewise.
	PR c++/68312
	* cp-array-notation.c (expand_sec_reduce_builtin):
	Likewise.
	(create_array_refs): Replace argument with const reference.
	(expand_an_in_modify_expr): Likewise.
	(cp_expand_cond_array_notations): Likewise.
	(expand_unary_array_notation_exprs): Likewise.
	PR c++/68312
	* array-notation-common.c (cilkplus_extract_an_triplets):
	Release vector of vectors.
	* cilk.c (gimplify_cilk_spawn): Free allocated memory.
	PR c++/68312
	* vec.h (release_vec_vec): New function.

From-SVN: r231001
2015-11-27 09:36:20 +00:00
Jakub Jelinek
4d95edca12 re PR tree-optimization/68552 (ICE in in expand_expr_real_2 with -O2 -ftree-vectorize)
PR tree-optimization/68552
	* optabs.c (expand_vec_perm_1): Move vec_shr handling from here...
	(expand_vec_perm): ... here.  Do it regardless of vec_perm_const_optab
	or whether v0 == v1.

From-SVN: r231000
2015-11-27 10:01:20 +01:00
Jakub Jelinek
aec17bfe91 re PR c/63326 (whether a #pragma is a statement depends on the type of pragma)
PR c/63326
	* c-parser.c (c_parser_compound_statement_nostart): If
	last_label is true, use pragma_stmt instead of pragma_compound
	as second c_parser_pragma argument.
	(c_parser_omp_ordered, c_parser_omp_target_update,
	c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): Pass
	false as second argument to c_parser_skip_to_pragma_eol after
	diagnosing standalone directives used in pragma_stmt context.

	* parser.c (cp_parser_statement): Clear in_compound after labels.

	* gcc.dg/gomp/barrier-2.c (f2): Expect another error after label.
	* c-c++-common/gomp/pr63326.c: New test.

	* testsuite/libgomp.c/cancel-parallel-2.c (foo): Add semicolon
	in between case label and OpenMP standalone directives.
	* testsuite/libgomp.c++/cancel-parallel-2.C (foo): Likewise.

From-SVN: r230999
2015-11-27 09:59:55 +01:00
Martin Liska
5e48d8a09e Replace spaces with tabs and remove trailing whitespaces
* tree-ssa-uninit.c: Fix whitespaces in the source file.
	The change is just automatical.

From-SVN: r230998
2015-11-27 08:43:56 +00:00
Martin Liska
2f0fc50514 Fix memory leak in tree-chkp.c
* tree-chkp.c (chkp_make_static_bounds): Release buffer
	used for string.

From-SVN: r230997
2015-11-27 08:39:00 +00:00
Martin Liska
12a18ca543 Fix parser memory leak in cilk_simd_fn_info
* parser.c (cp_parser_late_parsing_cilk_simd_fn_info):
	Release tokens.

From-SVN: r230996
2015-11-27 08:37:44 +00:00
Martin Liska
5cd366f386 Fix memory leak in loop_vec_info
* tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
	Do not release memory for comp_alias_ddrs.
	* tree-vect-loop.c (destroy_loop_vec_info): Release
	the memory for all loop_vec_info.

From-SVN: r230995
2015-11-27 08:37:23 +00:00
Martin Liska
ed37a6cf23 Fix memory leaks in IPA devirt
* ipa-devirt.c (ipa_devirt): Use auto_vec instead
	of a local-scope vec.
	(struct final_warning_record): Use auto_vec instead
	of vec.

From-SVN: r230994
2015-11-27 08:36:52 +00:00
Richard Biener
2ce2720078 re PR tree-optimization/68553 (gcc.dg/vect/pr68445.c FAILs)
2015-11-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68553
	* tree-vect-slp.c (vect_get_mask_element): Remove.
	(vect_transform_slp_perm_load): Implement in a simpler way.

	* gcc.dg/vect/pr45752.c: Adjust.
	* gcc.dg/vect/slp-perm-4.c: Likewise.

From-SVN: r230993
2015-11-27 08:31:44 +00:00
GCC Administrator
f0a813f2ad Daily bump.
From-SVN: r230990
2015-11-27 00:16:15 +00:00
Martin Sebor
ed48be0ef3 Correctly handle ARM targets.
* g++.dg/init/new45.C (cookie_size): New constant set to a value
	appropriate for the target.
	(operator new[]): Use it.

From-SVN: r230987
2015-11-26 16:31:32 -07:00
Alexandre Oliva
1e5d7fd638 [PR67753] adjust for padding when bypassing memory in assign_parm_setup_block
Storing a register in memory as a full word and then accessing the
same memory address under a smaller-than-word mode amounts to
right-shifting of the register word on big endian machines.  So, if
BLOCK_REG_PADDING chooses upward padding for BYTES_BIG_ENDIAN, and
we're copying from the entry_parm REG directly to a pseudo, bypassing
any stack slot, perform the shifting explicitly.

This fixes the miscompile of function_return_val_10 in
gcc.target/aarch64/aapcs64/func-ret-4.c for target aarch64_be-elf
introduced in the first patch for 67753.

for  gcc/ChangeLog

	PR rtl-optimization/67753
	PR rtl-optimization/64164
	* function.c (assign_parm_setup_block): Right-shift
	upward-padded big-endian args when bypassing the stack slot.

From-SVN: r230985
2015-11-26 21:57:40 +00:00
Maciej W. Rozycki
4d6ca95b9a MIPS/GCC/doc: Reorder `-mcompact-branches='
Move the `-mcompact-branches=' option out of the middle of a block of
floating-point options.  The option is not related to FP in any way.
Place it immediately below other branch instruction selection options.

	* doc/invoke.texi (Option Summary) <MIPS Options>: Reorder
	`-mcompact-branches='.
	(MIPS Options): Likewise.

From-SVN: r230984
2015-11-26 20:50:54 +00:00
Mike Stump
e78dbb4aa4 Fix whitespacing.
From-SVN: r230983
2015-11-26 20:48:29 +00:00
Jakub Jelinek
1b21256287 * Makefile.in (build/genmatch.o): Depend on internal-fn.def.
From-SVN: r230982
2015-11-26 21:00:33 +01:00
Paolo Carlini
57fbfd5a55 re PR c++/67238 ([C++11][C++14]cc1plus crash for nested decltype expression in parameter pack in trailing return type when '-g' enabled)
2015-11-26  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/67238
	* g++.dg/cpp0x/pr67238.C: New.

From-SVN: r230981
2015-11-26 18:43:47 +00:00
Martin Sebor
83cc5c7a2f pr67876.C: Remove duplicate content.
gcc/testsuite/
	* g++.dg/pr67876.C: Remove duplicate content.

From-SVN: r230980
2015-11-26 11:01:02 -07:00
Andreas Arnez
9daf14d442 cp-gimplify.c (genericize_cp_loop): Change LOOP_EXPR's location to start of loop body instead of start of loop.
gcc/cp/ChangeLog:

2015-11-26  Andreas Arnez  <arnez@linux.vnet.ibm.com>

	* cp-gimplify.c (genericize_cp_loop): Change LOOP_EXPR's location
	to start of loop body instead of start of loop.

gcc/testsuite/ChangeLog:

2015-11-26  Andreas Arnez  <arnez@linux.vnet.ibm.com>

	* g++.dg/guality/pr67192.C: New test.

From-SVN: r230979
2015-11-26 17:52:01 +00:00
David Edelsohn
8b95719a65 install.texi (Prerequisites): Increase ISL requirement to 0.14 or 0.15.
* doc/install.texi (Prerequisites): Increase ISL requirement to
        0.14 or 0.15.

From-SVN: r230978
2015-11-26 11:57:23 -05:00
Jonathan Wakely
5930d87a2d Ensure another pretty-printer test uses C++98 mode
* testsuite/libstdc++-prettyprinters/debug.cc: Add -std=gnu++98 to
	dg-options and avoid use of uniform-init.

From-SVN: r230977
2015-11-26 16:25:55 +00:00
Torvald Riegel
e7f7330fed libitm: Use multiplicative hashing in the multi-lock TM method.
* method-ml.cc (ml_mg): Use multiplicative instead of simple hashing.
	(ml_wt_dispatch::pre_write): Adapt.
	(ml_wt_dispatch::pre_load): Likewise.

From-SVN: r230975
2015-11-26 16:10:54 +00:00