Commit Graph

133813 Commits

Author SHA1 Message Date
Arnaud Charlet
71ff3d1820 [multiple changes]
2014-10-31  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb (Freeze_Record_Type): Do not check component size
	if its type is generic.

2014-10-31  Bob Duff  <duff@adacore.com>

	* gnat_rm.texi: Fix documentation w.r.t -gnatw.w.

2014-10-31  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Try_Container_Indexing): Use Check_Implicit_Dereference.
	* sem_util.adb (Check_Implicit_Dereference): a)	Handle generalized
	indexing as well as function calls.  b)  If the context is a
	selected component and whe are in an instance, remove entity from
	selector name to force resolution of the node, so that explicit
	dereferences can be generated in the instance if they were in
	the generic unit.

2014-10-31  Eric Botcazou  <ebotcazou@adacore.com>

	* inline.adb (Back_End_Cannot_Inline): Delete.
	(Add_Inlined_Subprogram): Do not call it.

From-SVN: r216956
2014-10-31 12:02:55 +01:00
Arnaud Charlet
26b043e041 [multiple changes]
2014-10-31  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch3.ads (Make_Tag_Assignment): New function, used to
	re-initialize the tag in a tagged object declaration with
	initial value.
	* exp_ch3.adb (Expand_N_Object_Declaration): Use
	Make_Tag_Assignment to simplify code for a tagged object
	declaration.
	* exp_ch13.adb (Expand_Freeze_Entity): Analyze freeze actions
	for the freeze node of an object.
	* freeze.adb (Check_Address_Clause): Use Make_Tag_Assignment when
	needed to extend Freeze_Actions for a tagged object declaration.

2014-10-31  Eric Botcazou  <ebotcazou@adacore.com>

	* gnat_ugn.texi: Further minor improvement to -flto entry.

2014-10-31  Gary Dismukes  <dismukes@adacore.com>

	* g-dynhta.adb, g-dynhta.ads: Minor typo fixes and reformatting.

From-SVN: r216955
2014-10-31 11:59:56 +01:00
Max Ostapenko
e27d328acd re PR ipa/63696 (Alloc-dealloc-mismatch in ipa-icf.c)
gcc/

2014-10-31  Max Ostapenko  <m.ostapenko@partner.samsung.com>

        PR ipa/63696
        * ipa-icf.c (sem_function::~sem_function): Change free to delete to avoid
        alloc-dealloc mismatch with new, called in ipa_icf::sem_function::init.

From-SVN: r216954
2014-10-31 12:53:36 +02:00
Ilya Enkovich
cb115cc299 MAINTAINERS (Write After Approval): Add myself.
2014-10-31  Ilya Enkovich  <ilya.enkovich@intel.com>

	* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r216952
2014-10-31 09:19:43 +00:00
GCC Administrator
af43148b9a Daily bump.
From-SVN: r216948
2014-10-31 00:16:39 +00:00
Felix Yang
6383386a1b Add zero-cost loops for xtensa port.
2014-10-10  Felix Yang  <felix.yang@huawei.com>

	* config/xtensa/xtensa.h (TARGET_LOOPS): New Macro.
	* config/xtensa/xtensa.c: Include dumpfile.h and hw-doloop.h.
	(xtensa_reorg, xtensa_reorg_loops): New.
	(xtensa_can_use_doloop_p, xtensa_invalid_within_doloop): New.
	(hwloop_optimize, hwloop_fail, hwloop_pattern_reg): New.
	(xtensa_emit_loop_end): Emit the zero-overhead loop end label.
	(xtensa_doloop_hooks): Define.
	* config/xtensa/xtensa.md (doloop_end, loop_end): New
	(zero_cost_loop_start): Rewritten.
	(zero_cost_loop_end): Likewise.

From-SVN: r216945
2014-10-30 21:37:45 +00:00
Steve Ellcey
77893d0b75 config.gcc (mips*-*-linux*): Combine 32 and 64 bit cases.
2014-10-30  Steve Ellcey  <sellcey@imgtec.com>

	* config.gcc (mips*-*-linux*): Combine 32 and 64 bit cases.

From-SVN: r216944
2014-10-30 20:44:53 +00:00
Joseph Myers
e610393ca7 Make soft-fp symbols into compat symbols for powerpc*-*-linux*.
Continuing preparations for implementing
TARGET_ATOMIC_ASSIGN_EXPAND_FENV for powerpc*-*-linux* soft-float and
e500, this patch makes soft-fp symbols used for those targets into
compat symbols when building with glibc >= 2.19, so that they are only
in shared libgcc for existing binaries requiring them, not in static
libgcc and not available for new links using shared libgcc.  Instead,
new links will get the symbols from libc, which has exported all of
them since 2.19.  (Actually all the symbols were exported from glibc
since 2.4, but some of them were exported by glibc as compat symbols
only - because of a confusion between deliberately present soft-fp
symbols and old accidental reexports of libgcc functions from glibc
2.0 - until 2.19.)

This allows user floating-point arithmetic to interoperate properly
with the state handled by <fenv.h> functions, whether software state
(for soft-float; TLS variables that don't form a public part of
glibc's ABI, so can only be accessed directly by functions within
glibc) or hardware state (for e500 - the copies of the soft-fp
functions in glibc being built to interoperate with the hardware state
whereas those in libgcc aren't).  Previously only glibc's own
functions, and those operations done in hardware on e500, properly
worked with that state, not direct floating-point arithmetic
operations that were implemented in software.

The intended next step is the actual TARGET_ATOMIC_ASSIGN_EXPAND_FENV
implementation.

The test of glibc >= 2.19 uses the same --with-glibc-version configure
option as in the gcc/ directory (but differently implemented; in gcc/
the fallback is to examine headers to find the version, while in
libgcc/ we can use compile for the target and so use AC_COMPUTE_INT).
The TARGET_ATOMIC_ASSIGN_EXPAND_FENV implementation will also only do
anything for glibc >= 2.19, as it will depend on generating calls to
functions __atomic_feholdexcept __atomic_feclearexcept
__atomic_feupdateenv that were added in 2.19 for that purpose (even
for e500, inline code is not readily possible because of the need to
make prctl syscalls from the implementation of these functions).

In order to make symbols compat symbols, the soft-fp files need
wrapping with generated wrappers including asm .symver directives,
which need to name the symbol version in question.  This is extracted
by an awk script from an intermediate stage of generating the .map
file for linking libgcc (that .map itself depends on the objects that
go into the library, so can't be used for this purpose as that would
mean a circular dependency); the extraction is not fully general
regarding the features available in .map generation, but suffices for
the present purpose.

It would make sense for hardfp.c symbols to be compat symbols as well
(in the cases where hardfp.c gets used, the functions in question
should not be used for new links), but this isn't required for the
present purpose, which is only concerned with ensuring that where
functions that should be affected by rounding modes or exceptions get
used, those functions are actually affected by those rounding modes or
exceptions.

Tested with no regressions with cross to powerpc-linux-gnu
(soft-float); c11-atomic-exec-5.c moves from UNSUPPORTED to FAIL, as
expected, now that floating-point arithmetic in user programs uses the
same state as <fenv.h> functions, so the fenv_exceptions test passes,
but TARGET_ATOMIC_ASSIGN_EXPAND_FENV isn't yet implemented.  (For
e500, c11-atomic-exec-5.c was already FAILing, as enough operations
worked with the hardware state for the fenv_exceptions effective
target test to pass.)  Also verified that the exported symbols and
versions are unchanged, with the expected symbols becoming compat
symbols at the same versions, and that with --with-glibc-version=2.18
the symbols remain normal rather than compat symbols.

	* Makefile.in (libgcc.map.in): New target.
	(libgcc.map): Use libgcc.map.in.
	* config/t-softfp (softfp_compat): New variable to be set by
	users.
	[$(softfp_compat) = y] (softfp_map_dep, softfp_set_symver): New
	variables.
	[$(softfp_compat) = y] (softfp_file_list): Use files in the build
	directory.
	[$(softfp_compat) = y] ($(softfp_file_list)): Generate wrappers
	that use compat symbols and disable all code unless [SHARED].
	* config/t-softfp-compat: New file.
	* find-symver.awk: New file.
	* configure.ac (--with-glibc-version): New configure option.
	(ppc_fp_compat): New variable set for powerpc*-*-linux*.
	* configure: Regenerate.
	* config.host (powerpc*-*-linux*): Use ${ppc_fp_compat} for
	soft-float and e500.

From-SVN: r216942
2014-10-30 17:28:30 +00:00
Marek Polacek
2d51fcef56 c-objc-common.c (c_tree_printer): For a typedef name, print the stripped version as well, if they're not the same.
* c-objc-common.c (c_tree_printer) <case 'T'>: For a typedef name,
	print the stripped version as well, if they're not the same.

	* gcc.dg/diag-aka-1.c: New test.
	* gcc.dg/pr13804-1.c: Adjust dg-error.
	* gcc.dg/redecl-14.c: Likewise.
	* gcc.dg/pr56980.c: Adjust dg-message.

From-SVN: r216941
2014-10-30 17:22:12 +00:00
Richard Biener
f1308e4b82 genmatch.c: Remove <map>, <utility> and <string> includes.
2014-10-30  Richard Biener  <rguenther@suse.de>

	* genmatch.c: Remove <map>, <utility> and <string> includes.
	Include ggc.h and hash-map.h.
	(ggc_internal_cleared_alloc): Provide stub definition.
	(ggc_free): Likewise.
	(struct capture_id_map_hasher): New traits for hash_map.
	(cid_map_t): New typedef.
	(everywhere else): Replace std::map use with cid_map_t.
	* hash-map.h (hash_map::elements): New member function.
	* Makefile.in (build/genmatch.o): Add $(HASH_TABLE_H),
	hash-map.h and $(GGC_H) as dependency.

From-SVN: r216940
2014-10-30 15:41:45 +00:00
Richard Biener
d822570f73 genmatch.c (capture_info::walk_c_expr): Ignore capture uses inside TREE_TYPE ().
2014-10-30  Richard Biener  <rguenther@suse.de>

	* genmatch.c (capture_info::walk_c_expr): Ignore capture
	uses inside TREE_TYPE ().
	* gimple-ssa-strength-reduction.c (stmt_cost): Use CASE_CONVERT.
	(find_candidates_dom_walker::before_dom_children): Likewise.
	(replace_mult_candidate): Use CONVERT_EXPR_CODE_P.
	(replace_profitable_candidates): Likewise.
	* tree-ssa-dom.c (initialize_hash_element): Canonicalize
	CONVERT_EXPR_CODE_P to CONVERT_EXPR.
	* convert.c (convert_to_integer): Use CASE_CONVERT.

From-SVN: r216939
2014-10-30 15:36:05 +00:00
Ian Lance Taylor
665c06cec2 * gcc.misc-tests/godump-1.c: Skip if ! lp64.
From-SVN: r216938
2014-10-30 15:19:45 +00:00
Dominik Vogt
d8f8ea0034 godump-1.c: Skip -fdump-go-spec tests for all platforms except s390[x] and x86_64.
* gcc.misc-tests/godump-1.c: Skip -fdump-go-spec tests for all
	platforms except s390[x] and x86_64.

From-SVN: r216936
2014-10-30 14:51:30 +00:00
David Edelsohn
020bd6f43f configure.host (aix5+): New stanza.
* configure.host (aix5+): New stanza.
        (aix4.3+): Do not use -G in link command.

From-SVN: r216935
2014-10-30 10:20:50 -04:00
Richard Biener
36a60e48f4 match.pd: Implement more patterns that simplify to a single value.
2014-10-30  Richard Biener  <rguenther@suse.de>

	* match.pd: Implement more patterns that simplify to a single value.
	* fold-const.c (fold_binary_loc): Remove them here.
	* tree-ssa-forwprop.c (simplify_bitwise_binary): Likewise.
	(fwprop_ssa_val): Remove restriction on single uses.

From-SVN: r216933
2014-10-30 13:13:35 +00:00
Jan-Benedict Glaw
6327f612fd driver-avr.c (avr_set_current_device): Remove.
2014-10-30  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config/avr/driver-avr.c (avr_set_current_device): Remove.

From-SVN: r216932
2014-10-30 12:44:23 +00:00
Arnaud Charlet
cc9b1e1ca0 [multiple changes]
2014-10-30  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch3.adb (Expand_N_Object_Declaration): Code cleanup.

2014-10-30  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb (Analyze_Iterator_Specification): If a subtype
	indication is provided, check properly that it covers the element
	type of of the container type.

2014-10-30  Hristian Kirtchev  <kirtchev@adacore.com>

	* g-dynhta.ads, g-dynhta.adb: Add the implementation of a load facto
	-based hash table.

From-SVN: r216926
2014-10-30 12:53:39 +01:00
Arnaud Charlet
35fdafcdda Recommit wrongly reverted change.
From-SVN: r216924
2014-10-30 12:46:20 +01:00
Arnaud Charlet
f11ac8e701 Recommit wrongly reverted change.
From-SVN: r216923
2014-10-30 12:45:47 +01:00
Arnaud Charlet
1572e2c327 Re-commit wrongly reverted previous change.
From-SVN: r216922
2014-10-30 12:45:03 +01:00
Arnaud Charlet
cd2c602730 [multiple changes]
2014-10-30  Ed Schonberg  <schonberg@adacore.com>

	* exp_util.ads, exp_util.adb (Following_Address_Clause): Modify
	Has_Following_Address_Clause so that it returns the address
	clause if present, rather than a boolean value.
	* sem_ch3.adb (Analyze_Object_Declaration): use
	Following_Address_Clause.
	* exp_ch3.adb (Expand_N_Object_Declaration): When a tagged object
	is initialized, insert tag assignment after object is frozen,
	which may be after an address clause that follows the declaration.

2014-10-30  Tristan Gingold  <gingold@adacore.com>

	* system-darwin-x86.ads, system-linux-s390x.ads, system-linux-alpha.ads,
	system-vxworks-arm.ads, system-freebsd-x86_64.ads,
	system-linux-hppa.ads, system-linux-s390.ads,
	system-solaris-sparcv9.ads, system-mingw.ads, system-linux-ia64.ads,
	system-vxworks-sparcv9.ads, system-linux-ppc.ads, system-aix64.ads,
	system-linux-sh4.ads, system-solaris-x86.ads, system-linux-x86_64.ads,
	system-linux-x86.ads, system-vxworks-ppc.ads, system-hpux.ads,
	system-linux-armel.ads, system-darwin-ppc.ads, system-solaris-sparc.ads,
	system-vxworks-m68k.ads, system-hpux-ia64.ads, system.ads,
	system-solaris-x86_64.ads, system-mingw-x86_64.ads,
	system-vxworks-mips.ads, system-linux-sparc.ads, system-freebsd-x86.ads,
	system-aix.ads, system-darwin-x86_64.ads, system-vxworks-x86.ads: Add
	pragma No_Elaboration_Code_All.

2014-10-30  Eric Botcazou  <ebotcazou@adacore.com>

	* gnat_ugn.texi: Minor improvement to -flto entry.

From-SVN: r216921
2014-10-30 12:44:20 +01:00
Arnaud Charlet
b3407ce0ca [multiple changes]
2014-10-30  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_util.adb (Inherit_Subprogram_Contract):
	Add a guard to protect against enumeration literal overriding.
	* sem_ch3.adb, sem_ch4.adb, sem_res.adb, sem_util.adb:
	Minor reformatting (add SPARK RM references).

2014-10-30  Robert Dewar  <dewar@adacore.com>

	* exp_dbug.adb, opt.ads: Minor reformatting.

From-SVN: r216920
2014-10-30 12:37:06 +01:00
Arnaud Charlet
039538bc35 [multiple changes]
2014-10-30  Yannick Moy  <moy@adacore.com>

	* inline.adb (Has_Single_Return_In_GNATprove_Mode):
	Return False when return statement is inside one or more blocks.

2014-10-30  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch7.adb (Is_Subprogram_Call): Account for the case where an
	object declaration initialized by a function call that returns
	an unconstrained result may be rewritted as a renaming of the
	secondary stack result.

2014-10-30  Hristian Kirtchev  <kirtchev@adacore.com>

	* aspects.adb: Add an entry for aspect Extensions_Visible in
	table Canonical_Aspect.
	* aspects.ads: Add entry for aspect Extensions_Visible in
	tables Aspect_Argument, Aspect_Delay, Aspect_Id, Aspect_Names,
	Implementation_Defined_Aspect.
	* einfo.adb (Get_Pragma): Include pragma Extensions_Visible in
	the list of contract pragmas.
	* par-prag.adb Pragma Extensions_Visible does not require special
	processing from the parser.
	* sem_ch3.adb (Analyze_Object_Declaration): Prevent an
	implicit class-wide conversion of a formal parameter
	of a specific tagged type whose related subprogram is
	subject to pragma Extensions_Visible with value "False".
	(Check_Abstract_Overriding): Add various overriding checks
	related to pragma Extensions_Visible.
	(Derive_Subprogram):
	A subprogram subject to pragma Extensions_Visible with value
	False requires overriding if the subprogram has at least one
	controlling OUT parameter.
	(Is_EVF_Procedure): New routine.
	* sem_ch4.adb (Analyze_Type_Conversion): A formal parameter of
	a specific tagged type whose related subprogram is subject to
	pragma Extensions_Visible with value "False" cannot appear in
	a class-wide conversion.
	* sem_ch6.adb (Analyze_Subprogram_Contract): Remove
	the assertion to account for pragma Extensions_Visible.
	(Check_Overriding_Indicator): An overriding subprogram
	inherits the contact of the overridden subprogram.
	(New_Overloaded_Entity): An overriding subprogram inherits the
	contact of the overridden subprogram.
	* sem_ch13.adb (Analyze_Aspect_Specifications): Add processing
	for aspect Extensions_Visible.
	(Check_Aspect_At_Freeze_Point): Aspect Extensions_Visible does not
	require special processing at the freeze point.
	* sem_prag.adb Add an entry for pragma Extensions_Visible in
	table Sig_Flags.
	(Analyze_Pragma): Ensure that various SPARK
	pragmas lack identifiers in their arguments. Add processing for
	pragma Extensions_Visible.
	(Chain_CTC): Code reformatting.
	* sem_res.adb (Resolve_Actuals): A formal parameter of a
	specific tagged type whose related subprogram is subject to
	pragma Extensions_Visible with value "False" cannot act as an
	actual in a subprogram with value "True".
	* sem_util.adb (Add_Classification): New routine.
	(Add_Contract_Item): Account for pragma Extensions_Visible. Code
	reformatting.
	(Add_Contract_Test_Case): New routine.
	(Add_Pre_Post_Condition): New routine.
	(Extensions_Visible_Status): New routine.
	(Inherit_Subprogram_Contract): New routine.
	(Is_EVF_Expression): New routine.
	(Is_Specific_Tagged_Type): New routine.
	* sem_util.ads Add type Extensions_Visible_Mode and document all values.
	(Add_Contract_Item): Add pragma Extensions_Visible to the
	comment on usage.
	(Inherit_Subprogram_Contract): New routine.
	(Is_EVF_Expression): New routine.
	(Is_Specific_Tagged_Type): New routine.
	* sinfo.adb (Is_Inherited): New routine.
	(Set_Is_Inherited): New routine.
	* sinfo.ads Add flag Is_Inherited along with its usage in
	nodes.
	(Is_Inherited): New routine along with pragma Inline.
	(Set_Is_Inherited): New routine along with pragma Inline.
	* snames.ads-tmpl: Add predefined name "Extensions_Visible"
	and a new Pragma_Id for the pragma.

From-SVN: r216919
2014-10-30 12:34:41 +01:00
Jakub Jelinek
67848724e5 Add svn:executable property for generate_libstdcxx_web_docs.
From-SVN: r216914
2014-10-30 11:11:38 +01:00
Martin Liska
47a668cd26 re PR tree-optimization/63574 (ICE building libjava (segfault) on arm-linux-gnueabihf)
PR ipa/63574
	PR ipa/63664
	* g++.dg/ipa/pr63574.C: New test.
	* ipa-icf-gimple.c (func_checker::parse_labels): Missing comment added.
	(func_checker::compare_gimple_label): Simlified comparison introduced.
	* ipa-icf-gimple.h: Missing comment added.

From-SVN: r216913
2014-10-30 10:10:58 +00:00
Thomas Schwinge
fca380479c Build a shared host libiberty also for libcc1's benefit.
* configure.ac (extra_host_libiberty_configure_flags): Add
	--enable-shared also for libcc1's benefit.
	* configure: Regenerate.

From-SVN: r216912
2014-10-30 11:06:37 +01:00
Jeff Law
e0d80a586d pa-protos.h (pa_output_arg_descriptor): Strengthen argument from rtx to rtx_insn *.
* config/pa/pa-protos.h (pa_output_arg_descriptor): Strengthen
	argument from rtx to rtx_insn *.
	(compute_movmem_length, compute_clrmem_length): Likewise.
	(copy_fp_args, length_fp_args): Likewise.
	* config/pa/pa.c (legitimize_pic_address): Promote local variable
	"insn" from rtx to rtx_insn *.
	(legitimize_tls_address, pa_emit_move_sequence): Likewise.
	(pa_output_block_move, store_reg, store_reg_modify): Likewise.
	(set_reg_plus_d, pa_expand_prologue, hppa_profile_hook): Likewise.
	(branch_to_delay_slot_p, branch_needs_nop_p, use_skip_p): Likewise.
	(pa_output_arg_descriptor): Strengthen argument to an rtx_insn *.
	(compute_movmem_length, compute_clrmem_length): Likewise.
	(copy_fp-args, length_fp_args): Likewise.

From-SVN: r216859
2014-10-29 23:14:13 -06:00
GCC Administrator
ed33cc2479 Daily bump.
From-SVN: r216858
2014-10-30 00:16:25 +00:00
Ramana Radhakrishnan
2c0122c97b Fix build fallout with machine_mode changes.
2014-10-29  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

        * config/arm/arm.h (MACHMODE): Treat machine_mode as a
        scalar typedef.
        (CUMULATIVE_ARGS): Guard against target includes.
        (machine_function): Likewise.

From-SVN: r216855
2014-10-29 23:41:04 +00:00
Kyrylo Tkachov
3fea1a75f5 [AArch64] Restore recog state after finding pre-madd instruction
* config/aarch64/aarch64.c (aarch64_madd_needs_nop): Restore
	recog state after aarch64_prev_real_insn call.

	* gcc.target/aarch64/madd_after_asm_1.c: New test.

From-SVN: r216852
2014-10-29 21:44:05 +00:00
Jonathan Wakely
a56561ac2d Use perfect forwarding in std::function invokers.
* include/std/functional: (_Function_base::_Function_base()): Use
	nullptr instead of literal zero.
	(function::operator=(nullptr_t)): Likewise.
	(_Function_handler::_M_invoke): Use perfect forwarding for _ArgTypes.
	(function::_Invoker_type): Likewise.
	* testsuite/20_util/function/invoke/forwarding.cc: New.

From-SVN: r216849
2014-10-29 18:38:31 +00:00
Jonathan Wakely
c2513a1f6d any: Add feature-testing macro.
* include/experimental/any: Add feature-testing macro.
	* include/experimental/optional: Likewise.
	* include/experimental/string_view: Likewise.
	* include/experimental/tuple: Likewise.
	* include/experimental/type_traits: Likewise.
	* testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error.

From-SVN: r216848
2014-10-29 18:22:05 +00:00
Jonathan Wakely
43e9f72225 Add <experimental/algorithm> and <experimental/functional>.
* doc/xml/manual/status_cxx2014.xml: Update TS status.
	* include/Makefile.am: Add new headers.
	* include/Makefile.in: Regenerate.
	* include/experimental/algorithm: New.
	* include/experimental/functional: New.
	* testsuite/experimental/algorithm/sample.cc: New.
	* testsuite/experimental/algorithm/search.cc: New.
	* testsuite/experimental/functional/not_fn.cc: New.
	* testsuite/experimental/functional/searchers.cc: New.
	* testsuite/experimental/functional/value.cc: New.
	* testsuite/experimental/feat-lib-fund.cc: Add headers and reorder.

From-SVN: r216847
2014-10-29 18:21:59 +00:00
Kyrylo Tkachov
86fea2cb8b [AArch64] Fix/revert fallout from machine_mode change
* config/aarch64/aarch64.h (MACHMODE): Add 'enum' to machine_mode.

From-SVN: r216846
2014-10-29 17:04:28 +00:00
Kyrylo Tkachov
f74e99104f [ARM] Fix/revert fallout from machine_mode change.
* config/arm/arm.h (MACHMODE): Add 'enum' to machine_mode.
	(struct machine_function): Gate definition on
	!defined(USED_FOR_TARGET).

From-SVN: r216845
2014-10-29 17:02:59 +00:00
DJ Delorie
40f94f7d73 expmed.c (strict_volatile_bitfield_p): Fix off-by-one error.
* expmed.c (strict_volatile_bitfield_p): Fix off-by-one error.
* gcc.dg/20141029-1.c: New.

From-SVN: r216844
2014-10-29 12:33:42 -04:00
Martin Liska
5cf18d250f re PR ipa/63587 (ICE : tree check: expected var_decl, have result_decl in add_local_variables, at tree-inline.c:4112)
PR ipa/63587

	* g++.dg/ipa/pr63587-1.C: New test
	* g++.dg/ipa/pr63587-2.C: New test.

	* cgraphunit.c (cgraph_node::expand_thunk): Only VAR_DECLs are put
	to local declarations.
	* function.c (add_local_decl): Implementation moved from header
	file, assert introduced for tree type.
	* function.h: Likewise.

From-SVN: r216841
2014-10-29 15:17:42 +00:00
Dominik Vogt
7b310e901c godump.c (go_format_type): Represent "float _Complex" and "double _Complex" as complex64 or complex128 in...
gcc/:
	* godump.c (go_format_type): Represent "float _Complex" and
	"double _Complex" as complex64 or complex128 in Go, as appropriate.
gcc/testsuite/:
	* gcc.misc-tests/godump-1.c: Add tests for complex types.

From-SVN: r216840
2014-10-29 15:01:07 +00:00
Richard Biener
d4573ffe1e match.pd: Implement a first set of conversion patterns.
2014-10-29  Richard Biener  <rguenther@suse.de>

	* match.pd: Implement a first set of conversion patterns.
	* fold-const.c (fold_unary_loc): Remove them here.
	* tree-ssa-forwprop.c (simplify_vce): Remove.
	(pass_forwprop::execute): Do not call simplify_vce.

From-SVN: r216839
2014-10-29 14:42:03 +00:00
Joseph Myers
bc1b3a8840 Optimize powerpc*-*-linux* e500 hardfp/soft-fp use.
Continuing the cleanups of libgcc soft-fp configuration for
powerpc*-*-linux* in preparation for implementing
TARGET_ATOMIC_ASSIGN_EXPAND_FENV for soft-float and e500, this patch
optimizes the choice of which functions to build for the e500 cases.

For e500v2, use of hardfp is generally right, except that calls to
__unordsf2 and __unorddf2 are actually generated by GCC from
__builtin_isunordered and so they need to be implemented with soft-fp
to avoid recursively calling themselves.  For e500v1, hardfp is right
for SFmode (except for __unordsf2) but soft-fp for DFmode (and when
using soft-fp, as usual it's best for the conversions between DFmode
and integers all to come directly from soft-fp rather than some coming
from libgcc2.c).  Thus, new variables hardfp_exclusions and
softfp_extras are added that configurations using t-hardfp and
t-softfp can use to achieve the desired effect of selectively mixing
the two sources of functions.

Tested with no regressions for crosses to powerpc-linux-gnuspe (both
e500v1 and e500v2); also checked that the same set of symbols and
versions is exported from shared libgcc before and after the patch.

	* config/t-hardfp (hardfp_exclusions): Document new variable for
	user to define.
	(hardfp_func_list): Exclude functions from $(hardfp_exclusions).
	* config/t-softfp (softfp_extras): Document new variable for user
	to define.
	(softfp_func_list): Add functions from $(softfp_extras).
	* config/rs6000/t-e500v1-fp, config/rs6000/t-e500v2-fp: New files.
	* config.host (powerpc*-*-linux*): For e500v1, use
	rs6000/t-e500v1-fp and t-hardfp; do not use t-softfp-sfdf and
	t-softfp-excl.  For e500v2, use t-hardfp-sfdf, rs6000/t-e500v2-fp
	and t-hardfp; do not use t-softfp-sfdf and t-softfp-excl.

From-SVN: r216835
2014-10-29 12:59:16 +00:00
Richard Sandiford
ef4bddc299 decl.c, [...]: Remove redundant enum from machine_mode.
gcc/ada/
	* gcc-interface/decl.c, gcc-interface/gigi.h, gcc-interface/misc.c,
	gcc-interface/trans.c, gcc-interface/utils.c, gcc-interface/utils2.c:
	Remove redundant enum from machine_mode.

gcc/c-family/
	* c-common.c, c-common.h, c-cppbuiltin.c, c-lex.c: Remove redundant
	enum from machine_mode.

gcc/c/
	* c-decl.c, c-tree.h, c-typeck.c: Remove redundant enum from
	machine_mode.

gcc/cp/
	* constexpr.c: Remove redundant enum from machine_mode.

gcc/fortran/
	* trans-types.c, trans-types.h: Remove redundant enum from
	machine_mode.

gcc/go/
	* go-lang.c: Remove redundant enum from machine_mode.

gcc/java/
	* builtins.c, java-tree.h, typeck.c: Remove redundant enum from
	machine_mode.

gcc/lto/
	* lto-lang.c: Remove redundant enum from machine_mode.

gcc/
	* addresses.h, alias.c, asan.c, auto-inc-dec.c, bt-load.c, builtins.c,
	builtins.h, caller-save.c, calls.c, calls.h, cfgexpand.c, cfgloop.h,
	cfgrtl.c, combine.c, compare-elim.c, config/aarch64/aarch64-builtins.c,
	config/aarch64/aarch64-protos.h, config/aarch64/aarch64-simd.md,
	config/aarch64/aarch64.c, config/aarch64/aarch64.h,
	config/aarch64/aarch64.md, config/alpha/alpha-protos.h,
	config/alpha/alpha.c, config/arc/arc-protos.h, config/arc/arc.c,
	config/arc/arc.h, config/arc/predicates.md,
	config/arm/aarch-common-protos.h, config/arm/aarch-common.c,
	config/arm/arm-protos.h, config/arm/arm.c, config/arm/arm.h,
	config/arm/arm.md, config/arm/neon.md, config/arm/thumb2.md,
	config/avr/avr-log.c, config/avr/avr-protos.h, config/avr/avr.c,
	config/avr/avr.md, config/bfin/bfin-protos.h, config/bfin/bfin.c,
	config/c6x/c6x-protos.h, config/c6x/c6x.c, config/c6x/c6x.md,
	config/cr16/cr16-protos.h, config/cr16/cr16.c,
	config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.md,
	config/darwin-protos.h, config/darwin.c,
	config/epiphany/epiphany-protos.h, config/epiphany/epiphany.c,
	config/epiphany/epiphany.md, config/fr30/fr30.c,
	config/frv/frv-protos.h, config/frv/frv.c, config/frv/predicates.md,
	config/h8300/h8300-protos.h, config/h8300/h8300.c,
	config/i386/i386-builtin-types.awk, config/i386/i386-protos.h,
	config/i386/i386.c, config/i386/i386.md, config/i386/predicates.md,
	config/i386/sse.md, config/i386/sync.md, config/ia64/ia64-protos.h,
	config/ia64/ia64.c, config/iq2000/iq2000-protos.h,
	config/iq2000/iq2000.c, config/iq2000/iq2000.md,
	config/lm32/lm32-protos.h, config/lm32/lm32.c,
	config/m32c/m32c-protos.h, config/m32c/m32c.c,
	config/m32r/m32r-protos.h, config/m32r/m32r.c,
	config/m68k/m68k-protos.h, config/m68k/m68k.c,
	config/mcore/mcore-protos.h, config/mcore/mcore.c,
	config/mcore/mcore.md, config/mep/mep-protos.h, config/mep/mep.c,
	config/microblaze/microblaze-protos.h, config/microblaze/microblaze.c,
	config/mips/mips-protos.h, config/mips/mips.c,
	config/mmix/mmix-protos.h, config/mmix/mmix.c,
	config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
	config/moxie/moxie.c, config/msp430/msp430-protos.h,
	config/msp430/msp430.c, config/nds32/nds32-cost.c,
	config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c,
	config/nds32/nds32-protos.h, config/nds32/nds32.c,
	config/nios2/nios2-protos.h, config/nios2/nios2.c,
	config/pa/pa-protos.h, config/pa/pa.c, config/pdp11/pdp11-protos.h,
	config/pdp11/pdp11.c, config/rl78/rl78-protos.h, config/rl78/rl78.c,
	config/rs6000/altivec.md, config/rs6000/rs6000-c.c,
	config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
	config/rs6000/rs6000.h, config/rx/rx-protos.h, config/rx/rx.c,
	config/s390/predicates.md, config/s390/s390-protos.h,
	config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
	config/sh/predicates.md, config/sh/sh-protos.h, config/sh/sh.c,
	config/sh/sh.md, config/sparc/predicates.md,
	config/sparc/sparc-protos.h, config/sparc/sparc.c,
	config/sparc/sparc.md, config/spu/spu-protos.h, config/spu/spu.c,
	config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
	config/tilegx/tilegx-protos.h, config/tilegx/tilegx.c,
	config/tilegx/tilegx.md, config/tilepro/tilepro-protos.h,
	config/tilepro/tilepro.c, config/v850/v850-protos.h,
	config/v850/v850.c, config/v850/v850.md, config/vax/vax-protos.h,
	config/vax/vax.c, config/vms/vms-c.c, config/xtensa/xtensa-protos.h,
	config/xtensa/xtensa.c, coverage.c, cprop.c, cse.c, cselib.c, cselib.h,
	dbxout.c, ddg.c, df-problems.c, dfp.c, dfp.h, doc/md.texi,
	doc/rtl.texi, doc/tm.texi, doc/tm.texi.in, dojump.c, dse.c,
	dwarf2cfi.c, dwarf2out.c, dwarf2out.h, emit-rtl.c, emit-rtl.h,
	except.c, explow.c, expmed.c, expmed.h, expr.c, expr.h, final.c,
	fixed-value.c, fixed-value.h, fold-const.c, function.c, function.h,
	fwprop.c, gcse.c, gengenrtl.c, genmodes.c, genopinit.c, genoutput.c,
	genpreds.c, genrecog.c, gensupport.c, gimple-ssa-strength-reduction.c,
	graphite-clast-to-gimple.c, haifa-sched.c, hooks.c, hooks.h, ifcvt.c,
	internal-fn.c, ira-build.c, ira-color.c, ira-conflicts.c, ira-costs.c,
	ira-emit.c, ira-int.h, ira-lives.c, ira.c, ira.h, jump.c, langhooks.h,
	libfuncs.h, lists.c, loop-doloop.c, loop-invariant.c, loop-iv.c,
	loop-unroll.c, lower-subreg.c, lower-subreg.h, lra-assigns.c,
	lra-constraints.c, lra-eliminations.c, lra-int.h, lra-lives.c,
	lra-spills.c, lra.c, lra.h, machmode.h, omp-low.c, optabs.c, optabs.h,
	output.h, postreload.c, print-tree.c, read-rtl.c, real.c, real.h,
	recog.c, recog.h, ree.c, reg-stack.c, regcprop.c, reginfo.c,
	regrename.c, regs.h, reload.c, reload.h, reload1.c, rtl.c, rtl.h,
	rtlanal.c, rtlhash.c, rtlhooks-def.h, rtlhooks.c, sched-deps.c,
	sel-sched-dump.c, sel-sched-ir.c, sel-sched-ir.h, sel-sched.c,
	simplify-rtx.c, stmt.c, stor-layout.c, stor-layout.h, target.def,
	targhooks.c, targhooks.h, tree-affine.c, tree-call-cdce.c,
	tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-if-conv.c,
	tree-inline.c, tree-outof-ssa.c, tree-scalar-evolution.c,
	tree-ssa-address.c, tree-ssa-ccp.c, tree-ssa-loop-ivopts.c,
	tree-ssa-loop-ivopts.h, tree-ssa-loop-manip.c,
	tree-ssa-loop-prefetch.c, tree-ssa-math-opts.c, tree-ssa-reassoc.c,
	tree-ssa-sccvn.c, tree-streamer-in.c, tree-switch-conversion.c,
	tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop.c,
	tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c,
	tree-vrp.c, tree.c, tree.h, tsan.c, ubsan.c, valtrack.c,
	var-tracking.c, varasm.c: Remove redundant enum from
	machine_mode.
gcc/
	* gengtype.c (main): Treat machine_mode as a scalar typedef.
	* genmodes.c (emit_insn_modes_h): Hide inline functions if
	USED_FOR_TARGET.

From-SVN: r216834
2014-10-29 12:02:45 +00:00
Jakub Jelinek
ca557f533a configure.ac: Remove -Werror addition to WARN_FLAGS.
* configure.ac: Remove -Werror addition to WARN_FLAGS.  Add
	ACX_PROG_CC_WARNINGS_ARE_ERRORS and AC_ARG_VAR for GMPINC.
	* Makefile.am (AM_CPPFLAGS): Add $(GMPINC).
	(WERROR_FLAG): Remove.
	(AM_CXXFLAGS): Use $(WERROR) instead of $(WERROR_FLAG).
	* configure: Regenerated.
	* Makefile.in: Regenerated.

Co-Authored-By: Phil Muldoon <pmuldoon@redhat.com>

From-SVN: r216833
2014-10-29 12:38:00 +01:00
Jakub Jelinek
56f274b2d9 Makefile.am (CXXFLAGS, LDFLAGS): Filter out -fsanitize=address.
* Makefile.am (CXXFLAGS, LDFLAGS): Filter out -fsanitize=address.
	(libiberty_normal, libiberty_noasan, libiberty_pic, libiberty_dep):
	New variables.
	(libiberty): Set to -Wc, followed by the first existing noasan/,
	pic/ or . libiberty.a.
	(libcc1plugin_la_DEPENDENCIES, libcc1plugin_la_LINK,
	libcc1_la_DEPENDENCIES, libcc1_la_LINK, LTLDFLAGS): New variables.
	* Makefile.in: Regenerated.

From-SVN: r216832
2014-10-29 12:37:18 +01:00
Thomas Preud'homme
a3cdf7c0ca optimize-bswapsi-1.c (swap32_e): New bswap test.
2014-10-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/testsuite/
    * gcc.dg/optimize-bswapsi-1.c (swap32_e): New bswap test.
    * gcc.dg/optimize-bswapsi-3.c: New test.

From-SVN: r216830
2014-10-29 10:33:46 +00:00
Richard Sandiford
dab67d2ca2 PR rtl-optimization/63340 (part 2)
gcc/
	PR rtl-optimization/63340 (part 2)
	* rtl.h (invalid_mode_change_p): Delete.
	(valid_mode_changes_for_regno): New function.
	* reginfo.c (invalid_mode_change_p): Delete.
	(valid_mode_changes_for_regno): New function.
	* ira-costs.c (setup_regno_cost_classes_by_aclass): Restrict the
	classes to registers that are allowed by valid_mode_changes_for_regno.
	(setup_regno_cost_classes_by_mode): Likewise.
	(print_allocno_costs): Remove invalid_mode_change_p test.
	(print_pseudo_costs, find_costs_and_classes): Likewise.

From-SVN: r216829
2014-10-29 10:02:33 +00:00
Richard Sandiford
cbfb154838 PR rtl-optimization/63340 (part 1)
gcc/
	PR rtl-optimization/63340 (part 1)
	* ira-costs.c (all_cost_classes): New variable.
	(complete_cost_classes): New function, split out from...
	(setup_cost_classes): ...here.
	(initiate_regno_cost_classes): Set up all_cost_classes.
	(restrict_cost_classes): New function.
	(setup_regno_cost_classes_by_aclass): Restrict the cost classes to
	registers that are valid for the register's mode.
	(setup_regno_cost_classes_by_mode): Model the mode cache as a
	restriction of all_cost_classes to a particular mode.
	(print_allocno_costs): Remove contains_reg_of_mode check.
	(print_pseudo_costs, find_costs_and_classes): Likewise.

From-SVN: r216828
2014-10-29 10:00:18 +00:00
Jakub Jelinek
8f5f9f3613 Add svn:executable on configure.
From-SVN: r216827
2014-10-29 10:37:40 +01:00
Richard Biener
496d3346cf re PR tree-optimization/63666 (FAIL: gcc.dg/vect/pr45752.c (internal compiler error))
2014-10-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/63666
	* tree-vect-slp.c (vect_get_mask_element): Properly handle
	accessing out-of-bound elements.

From-SVN: r216825
2014-10-29 09:22:55 +00:00
Tristan Gingold
65c0707be6 MAINTAINERS: Change my email address.
2014-10-29  Tristan Gingold  <gingold@adacore.com>

	* MAINTAINERS: Change my email address.

From-SVN: r216823
2014-10-29 09:14:53 +00:00
Alexander Ivchenko
cdfb2db013 AVX-512. 89/n. Improve mask move insn generation.
gcc/
	* config/i386/i386.md
	(movhi_internal): Always detect maskmov.
	(movqi_internal): Fix target check.
gcc/testsuite/
	* gcc.target/i386/avx512dq-kmovb-1.c: New.

Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>

From-SVN: r216820
2014-10-29 07:16:03 +00:00