Commit Graph

124618 Commits

Author SHA1 Message Date
Jan Hubicka
bc0ec02766 cgraphunit.c (add_new_function): Fix logic when adding from late IPA pass.
* cgraphunit.c (add_new_function): Fix logic when adding from
	late IPA pass.
	(assemble_thunk): Rename to ...
	(expand_thunk); .. this one; export; get it working with general functions;
	make produced gimple valid.
	* cgraph.h (expand_thunk): Declare.

From-SVN: r201463
2013-08-03 11:02:37 +00:00
Jan Hubicka
0e8853eefb ipa-cp.c (gather_context_independent_values): Use ipa_get_param_move_cost.
* ipa-cp.c (gather_context_independent_values): Use ipa_get_param_move_cost.
	(get_replacement_map): Remove PARAM; move parameter folding into tree-inline.c
	(create_specialized_node): Update.
	* ipa-prop.c (ipa_populate_param_decls): Do not look for origins;
	assert that we have gimple body; update move_cost.
	(count_formal_params): Assert that we have gimple body.
	(ipa_dump_param): New function.
	(ipa_alloc_node_params): Break out from ...
	(ipa_initialize_node_params): ... here.
	(ipa_get_vector_of_formal_parms): ICE when used in WPA.
	(ipa_write_node_info): Stream move costs.
	(ipa_read_node_info): Read move costs.
	(ipa_update_after_lto_read): Do not recompute node params.
	* ipa-prop.h (ipa_param_descriptor): Add move_cost.
	(ipa_get_param): Check we are not in WPA.
	(ipa_get_param_move_cost): New.
	* tree-inline.c (tree_function_versioning): Fold replacement as needed.
	* ipa-inline-analysis.c (inline_node_duplication_hook): Expect only
	parm numbers to be present.

	* gcc.dg/ipa/ipa-1.c: Update.
	* gcc.dg/ipa/ipa-2.c: Update.
	* gcc.dg/ipa/ipa-3.c: Update.
	* gcc.dg/ipa/ipa-4.c: Update.
	* gcc.dg/ipa/ipa-5.c: Update.
	* gcc.dg/ipa/ipa-7.c: Update.
	* gcc.dg/ipa/ipa-8.c: Update.
	* gcc.dg/ipa/ipcp-1.c: Update.
	* gcc.dg/ipa/ipcp-2.c: Update.

From-SVN: r201462
2013-08-03 08:23:55 +00:00
GCC Administrator
563430f7f3 Daily bump.
From-SVN: r201461
2013-08-03 00:16:39 +00:00
Ian Lance Taylor
1b3dc031eb syscall: Change AWK split call to use []+ rather than []*.
Using []* fails with the awk that is part of busybox:
https://groups.google.com/d/msg/gofrontend-dev/NbQsG_AMDpY/sXCc03kkwn4J

From-SVN: r201455
2013-08-02 22:30:30 +00:00
Vladimir Makarov
ecee672b46 re PR rtl-optimization/58048 (internal compiler error: Max. number of generated reload insns per insn is achieved (90))
2013-08-02  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/58048
	* lra-constraints.c (process_alt_operands): Don't check asm
	operand on register.

2013-08-02  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/58048
	* gcc.target/i386/pr58048.c: New.

From-SVN: r201454
2013-08-02 22:06:11 +00:00
Eric Botcazou
13ec0527ea sparc.c (sparc_emit_membar_for_model): Add the implied StoreLoad barrier for atomic operations if before.
* config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add
	the implied StoreLoad barrier for atomic operations if before.

From-SVN: r201450
2013-08-02 21:41:58 +00:00
Ian Lance Taylor
a572c45497 go-gcc.cc (immutable_struct_set_init): Always call resolve_unique_section.
* go-gcc.cc (immutable_struct_set_init): Always call
	resolve_unique_section.

From-SVN: r201446
2013-08-02 18:24:19 +00:00
Ian Lance Taylor
aa7e089fdc compiler: Always put descriptor wrappers in their own section.
This lets the linker GC them.

From-SVN: r201442
2013-08-02 17:01:43 +00:00
Andreas Krebbel
d62d515246 configure.tgt: Add -msoft-float to XCFLAGS.
2013-08-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* configure.tgt: Add -msoft-float to XCFLAGS.

From-SVN: r201441
2013-08-02 16:00:36 +00:00
Jan Hubicka
af15184ab6 cgraph.c (cgraph_function_body_availability): Do not check cgrpah flags.
* cgraph.c (cgraph_function_body_availability): Do not check cgrpah flags.
	* cgraph.h (symtab_for_node_and_aliases, symtab_nonoverwritable_alias,
	symtab_node_availability): Declare.
	* ipa.c (can_replace_by_local_alias): New.
	(function_and_variable_visibility): Use it.
	* symtab.c (symtab_for_node_and_aliases, symtab_nonoverwritable_alias_1,
	symtab_nonoverwritable_alias): New.

Co-Authored-By: Martin Liska <marxin.liska@gmail.com>

From-SVN: r201439
2013-08-02 14:38:15 +00:00
Vladimir Makarov
01e54ef86f re PR rtl-optimization/57963 (LRA S/390: esa mode failure memcpy-chk)
2013-08-02  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/57963
	* lra-constraints.c (reverse_equiv_p, contains_reloaded_insn_p):
	New.
	(lra_constraints): Use them.

From-SVN: r201438
2013-08-02 14:23:38 +00:00
Sofiane Naci
e2fd7ca748 types.md (define_attr "type"): Add "load_acq" and "store_rel".
* config/arm/types.md (define_attr "type"): Add "load_acq" and "store_rel".
	* config/arm/cortex-a53.md (cortex_a53_load1): Update for attribute
	changes.
	(cortex_a53_store1): Likewise.

From-SVN: r201436
2013-08-02 13:15:05 +00:00
Kyrylo Tkachov
f43b3c4b22 neon-for-64bits-2.c: Delete.
2013-08-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* gcc.target/arm/neon-for-64bits-2.c: Delete.

From-SVN: r201435
2013-08-02 12:53:58 +00:00
Jan Hubicka
0dcc26c311 ipa.c (symtab_remove_unreachable_nodes): Nodes in other partitions are not needed.
* ipa.c (symtab_remove_unreachable_nodes): Nodes in other partitions are
	not needed.

From-SVN: r201431
2013-08-02 09:44:18 +00:00
Paolo Carlini
257e6ab3df functions.h (__foreign_iterator_aux4): Initialize __l and __ge.
2013-08-02  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/debug/functions.h (__foreign_iterator_aux4):
	Initialize __l and __ge.

From-SVN: r201428
2013-08-02 08:12:20 +00:00
Paolo Carlini
ab0bc60223 cp-tree.h (finish_stmt): Do not declare.
2013-08-02  Paolo Carlini  <paolo.carlini@oracle.com>

	* cp-tree.h (finish_stmt): Do not declare.
	* decl.c (finish_stmt): Do not define.
	* parser.c (cp_parser_expression_statement,
	cp_parser_declaration_statement,
	cp_parser_transaction_cancel): Don't call finish_stmt.
	* semantics.c (finish_expr_stmt, finish_if_stmt,
	finish_while_stmt, finish_do_stmt, finish_return_stmt,
	finish_for_stmt, finish_switch_stmt, finish_compound_stmt,
	finish_transaction_stmt): Likewise.

From-SVN: r201427
2013-08-02 07:59:14 +00:00
Paolo Carlini
7dec245a8c functions.h (__foreign_iterator_aux4): Initialize __l and __ge.
2013-08-02  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/debug/functions.h (__foreign_iterator_aux4):
	Initialize __l and __ge.

From-SVN: r201426
2013-08-02 07:53:01 +00:00
Paolo Carlini
a1a0abac54 re PR libstdc++/58049 (libstdc++ bootstrap failure for fix to PR libstdc++/57779)
2013-08-02  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/58049
	* include/debug/functions.h: Include <bits/move.h>; minor formatting
	changes.
	(__foreign_iterator_aux4): Declare __l and __ge constexpr.
	* include/debug/safe_iterator.h (_Safe_iterator<>::operator->):
	Use __addressof.
	* include/debug/safe_local_iterator.h (_Safe_local_iterator<>::
	operator->): Likewise.

From-SVN: r201424
2013-08-02 07:34:55 +00:00
GCC Administrator
fcf58e3d2f Daily bump.
From-SVN: r201423
2013-08-02 00:16:44 +00:00
Maxim Kuvyrkov
46549c206e Fix licenses on several libgcc files.
* config/aarch64/sfp-machine.h, config/aarch64/sync-cache.c,
	* config/i386/cpuinfo.c, config/ia64/unwind-ia64.h,
	* config/mips/vr4120-div.S: Fix license from GPL-3.0+ to
	GPL-3.0-with-GCC-exception.

From-SVN: r201417
2013-08-01 21:09:10 +00:00
François Dumont
5720787ada re PR libstdc++/57779 (vector insert fails to diagnose iterators pointing into *this in debug mode)
2013-08-01  François Dumont  <fdumont@gcc.gnu.org>

	PR libstdc++/57779
	* include/debug/formatter.h (_Debug_msg_id): Add
	__msg_insert_itself_range entry.
	* include/debug/functions.h (_Insert_range_from_self_is_safe<>):
	New, indicate container types supporting self range insertion in
	GNU implementation.
	(__foreign_iterator): New, check if an iterator points to a given
	sequence.
	* include/debug/macros.h (__glibcxx_check_insert_range): Add check
	using __foreign_iterator.
	(__gibcxx_check_insert_range_after): Likewise.
	* include/debug/string (_Insert_range_from_self_is_safe<>):
	Partially specialized to mark __gnu_debug::basic_string<> as
	supporting self range insert.
	* include/debug/list (_Insert_range_from_self_is_safe<>):
	Partially specialized to mark std::list as supporting self range
	insert if _GLIBCXX_DEBUG_PEDANTIC is not defined.
	* include/debug/forward_list (_Insert_range_from_self_is_safe<>):
	Likewise.
	* src/c++11/debug.cc (_S_debug_messages): Add
	__msg_insert_itself_range_entry message.
	(_Error_formatter::_Parameter::_M_print_description): Display
	iterator sequence address rather than sequence address when the
	parameter type is an iterator.
	(_Error_formatter::_M_print_word): Enhance behavior when
	displaying a word with an appended '\n'.
	* testsuite/util/debug/checks.h (check_insert4<>): New.
	* testsuite/23_containers/deque/debug/insert5_neg.cc: New.
	* testsuite/23_containers/vector/debug/insert5_neg.cc: Likewise.
	* testsuite/23_containers/vector/debug/insert6_neg.cc: Likewise.
	* testsuite/23_containers/vector/debug/57779_neg.cc: Likewise.
	* testsuite/23_containers/list/debug/insert5_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/debug/insert_after4_neg.cc:
	Likewise.

From-SVN: r201416
2013-08-01 19:54:46 +00:00
Uros Bizjak
0bd729015c i386.h (MAYBE_NON_Q_CLASS_P): New.
* config/i386/i386.h (MAYBE_NON_Q_CLASS_P): New.
	* config/i386/i386.c (ix86_secondary_reload): Use INTEGER_CLASS_P and
	MAYBE_NON_Q_CLASS_P where appropriate.

From-SVN: r201415
2013-08-01 21:48:46 +02:00
Fabien Chêne
fb23b69e14 re PR c++/54537 (undiagnosed using-declaration conflicting with used function)
gcc/cp/
        PR c++/54537
        * cp-tree.h: Check OVL_USED with OVERLOAD_CHECK.
        * name-lookup.c (do_nonmember_using_decl): Make sure we have an
	OVERLOAD before calling OVL_USED. Call diagnose_name_conflict
	instead of issuing an error without mentioning the conflicting
	declaration.

libstdc++-v3/
        PR c++/54537
	* include/tr1/cmath: Remove pow(double,double) overload, remove a
	duplicated comment about DR 550. Add a comment to explain the
	issue.
	* testsuite/tr1/8_c_compatibility/cmath/pow_cmath.cc: New.

gcc/testsuite/
        PR c++/54537
        * g++.dg/overload/using3.C: New.
	* g++.dg/overload/using2.C: Adjust.
	* g++.dg/lookup/using9.C: Likewise.

Co-Authored-By: Peter Bergner <bergner@vnet.ibm.com>

From-SVN: r201414
2013-08-01 14:24:37 -05:00
Jan Hubicka
12123452e4 cgraph.h (release_function_body): Declare.
* cgraph.h (release_function_body): Declare.
	* tree.c (free_lang_data_in_decl): Free, parameters and return values
	of unused delcarations.

From-SVN: r201413
2013-08-01 15:41:10 +00:00
Kyrylo Tkachov
ce852f9c3a arm.md (minmax_arithsi_non_canon): Emit canonical RTL form when subtracting a constant.
2013-08-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.md (minmax_arithsi_non_canon): Emit canonical RTL form
	when subtracting a constant.

From-SVN: r201412
2013-08-01 15:02:19 +00:00
Kyrylo Tkachov
c743b24643 arm.md (peepholes for eq (reg1) (reg2/imm)): Generate canonical plus rtx with negated immediate instead of minus where...
[gcc]
2013-08-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.md (peepholes for eq (reg1) (reg2/imm)):
	Generate canonical plus rtx with negated immediate instead of minus
	where appropriate.
	* config/arm/arm.c (thumb2_reorg): Handle ADCS <Rd>, <Rn> case.

[gcc/testsuite]

	* gcc.target/arm/pr46972-2.c: New test.

From-SVN: r201411
2013-08-01 15:00:41 +00:00
Jan Hubicka
c0c123ef52 cgraph.c (cgraph_release_function_body): Use used_as_abstract_origin.
* cgraph.c (cgraph_release_function_body): Use used_as_abstract_origin.
	(cgraph_release_function_body): Likewise.
	(cgraph_can_remove_if_no_direct_calls_p): Likewise.
	* cgraph.h (cgrpah_node): Rename abstract_and_needed
	to used_as_abstract_origin.
	* tree-inline-transfrom.c (can_remove_node_now_p_1): Do not remove
	symbols used as abstract origins.
	* cgraphunit.c (analyze_functions): Update.
	* ipa.c (symtab_remove_unreachable_nodes): Recompute used_as_abstract_origin.
	* tree-inline.c (tree_function_versioning): Update
	used_as_abstract_origin; be ready for DECL_RESULT and DECL_ARGUMENTS to be
	NULL.

	* lto-symtab.c (lto_symtab_merge_symbols): Merge duplicated nodes for abstract functions.
	* cgraph.h (symtab_real_symbol_p): Abstract declarations are not real symbols.

From-SVN: r201408
2013-08-01 13:24:49 +00:00
Vidya Praveen
0cd1dd571b vect-iv-5.c: Make xfail conditional with !arm_neon_ok.
* gcc.dg/vect/vect-iv-5.c: Make xfail conditional with !arm_neon_ok.

From-SVN: r201406
2013-08-01 13:58:13 +01:00
Jan Hubicka
1f02943335 * profile.c (compute_value_histograms): Fix thinko.
From-SVN: r201401
2013-08-01 10:03:55 +00:00
Sofiane Naci
c451f4d6c1 config.gcc (aarch64*-*-*): Add aarch-common.o to extra_objs.
* config.gcc (aarch64*-*-*): Add aarch-common.o to extra_objs.  Add
	aarch-common-protos.h to extra_headers.
	(aarch64*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
	* config/aarch64/aarch64.md: Include "../arm/cortex-a53.md"
	* config/aarch64/t-aarch64 (aarch-common.o): Define.

From-SVN: r201400
2013-08-01 09:50:52 +00:00
Sofiane Naci
34b512f5aa aarch64.md (define_attr "type"): Delete.
* config/aarch64/aarch64.md (define_attr "type"): Delete.
	Include "../arm/types.md".  Define "type" attribute for all patterns.
	* config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update for
	attribute changes.

From-SVN: r201399
2013-08-01 09:48:48 +00:00
GCC Administrator
04828fb6a6 Daily bump.
From-SVN: r201397
2013-08-01 00:16:34 +00:00
Tim Shen
95c7d82816 Thompson matcher refactored.
2013-07-31  Tim Shen  <timshen91@gmail.com>

	Thompson matcher refactored. Fix grouping problem.
	* include/bits/regex.h: Use a dispatcher _M_get_matcher().
	* include/bits/regex_compiler.h: Tweak for auto switching.
	* include/bits/regex_grep_matcher.h: Class structure.
	* include/bits/regex_grep_matcher.tcc: _BFSMatcher(Thompson
	matcher) refactoring.
	* include/bits/regex_nfa.h: Change _Results's interfaces.
	* include/std/regex: Includes <map> and <queue>.
	* testsuite/28_regex/algorithms/regex_match/extended/53622.cc:
	For both matchers.
	* testsuite/28_regex/algorithms/regex_match/extended/57173.cc:
	For both matchers.
	* testsuite/28_regex/algorithms/regex_match/extended/
	string_dispatch_01.cc: New.

From-SVN: r201391
2013-07-31 22:36:11 +00:00
Michael Meissner
d86e633abc predicates.md (fusion_gpr_addis): New predicates to support power8 load fusion.
[gcc]
2013-07-31  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/predicates.md (fusion_gpr_addis): New predicates
	to support power8 load fusion.
	(fusion_gpr_mem_load): Likewise.

	* config/rs6000/rs6000-modes.def (PTImode): Update a comment.

	* config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New
	declarations for power8 load fusion.
	(emit_fusion_gpr_load): Likewise.

	* config/rs6000/rs6000.c (rs6000_option_override_internal): If
	tuning for power8, turn on fusion mode by default.  Turn on sign
	extending fusion mode if normal fusion mode is on, and we are at
	-O2 or -O3.
	(fusion_gpr_load_p): New function, return true if we can fuse an
	addis instruction with a dependent load to a GPR.
	(emit_fusion_gpr_load): Emit the instructions for power8 load
	fusion to GPRs.

	* config/rs6000/vsx.md (VSX_M2): New iterator for fusion
	peepholes.
	(VSX load fusion peepholes): New peepholes to fuse together an
	addi instruction with a VSX load instruction.

	* config/rs6000/rs6000.md (GPR load fusion peepholes): New
	peepholes to fuse an addis instruction with a load to a GPR base
	register.  If we are supporting sign extending fusions, convert
	sign extending loads to zero extending loads and add an explicit
	sign extension.

[gcc/testsuite]
2013-07-31  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* gcc.target/powerpc/fusion.c: New file, test power8 fusion
	support.

From-SVN: r201385
2013-07-31 20:04:07 +00:00
Richard Sandiford
b26e3fc277 mips.exp (mips-dg-options): Test for mabicalls rather than addressing!=absolute when...
gcc/testsuite/
	* gcc.target/mips/mips.exp (mips-dg-options): Test for mabicalls
	rather than addressing!=absolute when deciding how to handle MIPS16
	when the test forces an ABI.

From-SVN: r201380
2013-07-31 18:33:50 +00:00
Paolo Carlini
0b57d5fa43 parser.c (cp_parser_sizeof_pack): Check cp_parser_identifier return value for error_mark_node.
2013-07-31  Paolo Carlini  <paolo.carlini@oracle.com>

	* parser.c (cp_parser_sizeof_pack): Check cp_parser_identifier
	return value for error_mark_node.

From-SVN: r201379
2013-07-31 18:28:16 +00:00
Paolo Carlini
4333e4dcf7 re PR libstdc++/56627 (class hash instead of struct hash)
2013-07-31  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/56627
	* include/bits/stl_bvector.h: Use friend struct hash intead of
	friend class hash to work around useless warnings produced by
	some compilers.
	* include/std/bitset: Likewise.

From-SVN: r201377
2013-07-31 14:36:13 +00:00
Sofiane Naci
c3f35647ff config.gcc (arm*-*-*): Add aarch-common.o to extra_objs.
* config.gcc (arm*-*-*): Add aarch-common.o to extra_objs.  Add
	aarch-common-protos.h to extra_headers.
	(arm*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
	* config/arm/arm.c (arm_early_load_addr_dep): Move from here to ...
	(arm_early_store_addr_dep): Likewise.
	(arm_no_early_alu_shift_dep: Likewise.
	(arm_no_early_alu_shift_value_dep: Likewise.
	(arm_no_early_mul_dep: Likewise.
	(arm_no_early_store_addr_dep: Likewise.
	(arm_mac_accumulator_is_mul_result: Likewise.
	(arm_mac_accumulator_is_result: Likewise.
	* config/arm/aarch-common.c: ... here.  New file.
	* config/arm/arm-protos.h (arm_early_load_addr_dep): Move from here to ...
	(arm_early_store_addr_dep): Likewise.
	(arm_no_early_alu_shift_dep: Likewise.
	(arm_no_early_alu_shift_value_dep: Likewise.
	(arm_no_early_mul_dep: Likewise.
	(arm_no_early_store_addr_dep: Likewise.
	(arm_mac_accumulator_is_mul_result: Likewise.
	(arm_mac_accumulator_is_result: Likewise.
	* config/arm/aarch-common-protos.h: ... here.  New file.
	* config/arm/t-arm (aarch-common.o): Define.

From-SVN: r201376
2013-07-31 14:32:39 +00:00
Sofiane Naci
701bd1bd9c arm.md: Include new file "types.md".
* config/arm/arm.md: Include new file "types.md".
	(define_attr "type"): Move from here to ...
	(define_attr "mul32"): Likewise.
	(define_attr "mul64"): Likewise.
	* config/arm/types.md: ... here.  New file.

From-SVN: r201375
2013-07-31 14:29:54 +00:00
Sebastian Huber
228c1313ff config.gcc (*-*-rtems*): Use __cxa_atexit by default.
2013-07-31  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* config.gcc (*-*-rtems*): Use __cxa_atexit by default.
	* config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define.

From-SVN: r201370
2013-07-31 12:58:35 +00:00
Paolo Carlini
a781834e44 functexcept.cc: Do not include the whole <regex>.
2013-07-31  Paolo Carlini  <paolo.carlini@oracle.com>

	* src/c++11/functexcept.cc: Do not include the whole <regex>.
	* src/c++11/regex.cc: Likewise.

From-SVN: r201369
2013-07-31 12:36:37 +00:00
Jan-Benedict Glaw
d6e9046de6 * ChangeLog: Fix my email address.
From-SVN: r201365
2013-07-31 09:54:43 +00:00
Jan-Benedict Glaw
8ac499bbd1 gen-pass-instances.awk: Fix offset of substr().
2013-07-31  Jan-Benedict Glaw  <jbglaw@owl.de>

	* gen-pass-instances.awk: Fix offset of substr().

From-SVN: r201364
2013-07-31 09:34:04 +00:00
Tim Shen
1151053225 Revert last commit.
From-SVN: r201360
2013-07-31 03:36:37 +00:00
David Malcolm
a167b052df Introduce gen-pass-instances.awk and pass-instances.def
Introduce a new gen-pass-instances.awk script, and use it at build time
to make a pass-instances.def from passes.def.

gcc/

	* Makefile.in (pass-instances.def): New.
	(passes.o): Replace dependency on passes.def with one on
	pass-instances.def

	* gen-pass-instances.awk: New.

	* passes.c (pass_manager::pass_manager): Use pass-instances.def
	rather than passes.def, updating local definition of NEXT_PASS
	macro to add an extra NUM parameter (currently unused).

From-SVN: r201359
2013-07-31 00:48:03 +00:00
Tim Shen
abf1719efe Thompson matcher refactored.
2013-07-31  Tim Shen  <timshen91@gmail.com>

	Thompson matcher refactored. Fix grouping problem.
	* include/bits/regex.h: Use a dispatcher _M_get_matcher().
	* include/bits/regex_compiler.h: Tweak for auto switching.
	* include/bits/regex_grep_matcher.h: Class structure.
	* include/bits/regex_grep_matcher.tcc: _BFSMatcher(Thompson
	matcher) refactoring.
	* include/bits/regex_nfa.h: Change _Results's interfaces.
	* include/std/regex: Includes <map> and <queue>.
	* testsuite/28_regex/algorithms/regex_match/extended/53622.cc:
	For both matchers.
	* testsuite/28_regex/algorithms/regex_match/extended/57173.cc:
	For both matchers.
	* testsuite/28_regex/algorithms/regex_match/extended/
	string_dispatch_01.cc: New.

From-SVN: r201358
2013-07-31 00:20:06 +00:00
GCC Administrator
daaf92f822 Daily bump.
From-SVN: r201357
2013-07-31 00:16:43 +00:00
Paolo Carlini
e77da14a53 re PR c++/57673 (pack sizeof ... groups ellipsis with preceding expression)
/cp
2013-07-30  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/57673
	* parser.c (cp_parser_cache_defarg): In an NSDMI don't stop when
	token->type == CPP_ELLIPSIS.

/testsuite
2013-07-30  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/57673
	* g++.dg/cpp0x/nsdmi-sizeof.C: New.

From-SVN: r201354
2013-07-30 22:38:52 +00:00
Steve Ellcey
df4f7bb8db code-readable-1.c: Increase switch size.
2013-07-30  Steve Ellcey  <sellcey@mips.com>

	* gcc.target/mips/code-readable-1.c: Increase switch size.
	* gcc.target/mips/code-readable-2.c: Ditto.
	* gcc.target/mips/code-readable-3.c: Ditto.
	* gcc.target/mips/code-readable-4.c: Ditto.

From-SVN: r201353
2013-07-30 20:32:43 +00:00
David Malcolm
315f8c0e21 Introduce beginnings of a pass_manager class.
This patch introduces a gcc::pass_manager class and moves various non-GTY
globals relating to pass management into it.  The gcc::context gains its
first field: a pointer to the gcc::pass_manager instance.

gcc/
	* Makefile.in (PASS_MANAGER_H): New.
	(lto-cgraph.o): Depend on CONTEXT_H and PASS_MANAGER_H.
	(passes.o): Likewise.
	(statistics.o): Likewise.
	(cgraphunit.o): Likewise.
	(context.o): Depend on PASS_MANAGER_H.

	* pass_manager.h: New.

	* cgraphunit.c (cgraph_add_new_function): Update for moves
	of globals to fields of pass_manager.
	(analyze_function): Likewise.
	(expand_function): Likewise.
	(ipa_passes): Likewise.
	(compile): Likewise.

	* context.c (context::context): New.
	* context.h  (context::context): New.
	(context::get_passes): New.
	(context::passes_): New.

	* lto-cgraph.c (input_node): Update for moves of globals to
	fields of pass_manager.

	* passes.c (all_passes): Remove, in favor of a field of the
	same name within the new class pass_manager.
	(all_small_ipa_passes): Likewise.
	(all_lowering_passes): Likewise.
	(all_regular_ipa_passes): Likewise.
	(all_late_ipa_passes): Likewise.
	(all_lto_gen_passes): Likewise.
	(passes_by_id): Likewise.
	(passes_by_id_size): Likewise.
	(gcc_pass_lists): Remove, in favor of "pass_lists" field within
	the new class pass_manager.
	(set_pass_for_id): Convert to...
	(pass_manager::set_pass_for_id): ...method.
	(get_pass_for_id): Convert to...
	(pass_manager::get_pass_for_id): ...method.
	(register_one_dump_file): Move body of implementation into...
	(pass_manager::register_one_dump_file): ...here.
	(register_dump_files_1): Convert to...
	(pass_manager::register_dump_files_1): ...method.
	(register_dump_files): Convert to...
	(pass_manager::register_dump_files): ...method.
	(create_pass_tab): Update for moves of globals to fields of
	pass_manager.
	(dump_passes): Move body of implementation into...
	(pass_manager::dump_passes): ...here.
	(register_pass): Move body of implementation into...
	(pass_manager::register_pass): ...here.
	(init_optimization_passes): Convert into...
	(pass_manager::pass_manager): ...constructor for new
	pass_manager class, and initialize the pass_lists array.
	(check_profile_consistency): Update for moves of globals to
	fields of pass_manager.
	(dump_profile_report): Move body of implementation into...
	(pass_manager::dump_profile_report): ...here.
	(ipa_write_summaries_1): Update for moves of pass lists from
	being globals to fields of pass_manager.
	(ipa_write_optimization_summaries): Likewise.
	(ipa_read_summaries):  Likewise.
	(ipa_read_optimization_summaries): Likewise.
	(execute_all_ipa_stmt_fixups): Likewise.

	* statistics.c (statistics_fini): Update for moves of globals to
	fields of pass_manager.

	* toplev.c (general_init): Replace call to
	init_optimization_passes with construction of the pass_manager
	instance.

	* tree-pass.h (all_passes): Remove, in favor of a field of the
	same name within the new class pass_manager.
	(all_small_ipa_passes): Likewise.
	(all_lowering_passes): Likewise.
	(all_regular_ipa_passes): Likewise.
	(all_lto_gen_passes): Likewise.
	(all_late_ipa_passes): Likewise.
	(passes_by_id): Likewise.
	(passes_by_id_size): Likewise.
	(gcc_pass_lists): Remove, in favor of "pass_lists" field within
	the new class pass_manager.
	(get_pass_for_id): Remove.

gcc/lto/

	* Make-lang.in (lto/lto.o:): Depend on CONTEXT_H and
	PASS_MANAGER_H.

	* lto.c (do_whole_program_analysis): Update for move of
	all_regular_ipa_passes from a global to a field of class
	pass_manager.

From-SVN: r201351
2013-07-30 18:52:03 +00:00