Commit Graph

137696 Commits

Author SHA1 Message Date
Shiva Chen
3e87f2d6dd re PR rtl-optimization/64916 (ira.c update_equiv_regs patch causes gcc/testsuite/gcc.target/arm/pr43920-2.c regression)
PR rtl-optimization/64916
        * cfgcleanup.c (values_equal_p): New function.
        (can_replace_by): Use it.

From-SVN: r222256
2015-04-20 23:23:08 -06:00
Bin Cheng
fadf02a4e0 re PR testsuite/65767 (Test pr65276 failed on arm-none-eabi)
PR testsuite/65767
	* g++.dg/lto/pr65276_0.C: Change namespace std to std2.
	* g++.dg/lto/pr65276_1.C: Change namespace std to std2.

From-SVN: r222255
2015-04-21 02:23:18 +00:00
GCC Administrator
c1b0a1f1d9 Daily bump.
From-SVN: r222254
2015-04-21 00:16:15 +00:00
Segher Boessenkool
858677721c MAINTAINERS (Various Maintainers): Add myself as instruction combiner maintainer.
* MAINTAINERS (Various Maintainers): Add myself as instruction
	combiner maintainer.

From-SVN: r222250
2015-04-21 00:03:37 +02:00
Paolo Carlini
2821fc6b76 re PR c++/65801 (Allow -Wno-narrowing to silence stricter C++11 narrowing rules)
/cp
2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/65801
	* typeck2.c (check_narrowing): In C++11 mode too, -Wno-narrowing
	suppresses the diagnostic.

2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/65801
	* doc/invoke.texi ([-Wnarrowing]): Update.

/testsuite
2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/65801
	* g++.dg/cpp0x/Wnarrowing2.C: New.

From-SVN: r222249
2015-04-20 21:46:59 +00:00
Ville Voutilainen
0cfabb3780 Reject trailing return type for an operator auto().
* decl.c (grokdeclarator): Reject trailing return types for
	all conversion operators, don't handle conversion operators
	in the previous checks that deal with auto.

From-SVN: r222248
2015-04-20 16:44:25 -04:00
Jeff Law
cb864fbc7e re PR tree-optimization/65658 (Jump threading too pessimistic when optimizing for size)
PR tree-optimization/65658
        * tree-ssa-threadupdate.c (redirection_block_p): Remove
        redundant test for GIMPLE_ASSIGN in last change.

From-SVN: r222247
2015-04-20 13:35:50 -06:00
Uros Bizjak
1e7e62b114 i386.c (set_pic_reg_ever_live): Remove.
* config/i386/i386.c (set_pic_reg_ever_live): Remove.
	(legitimize_pic_address): Do not call set_pic_reg_ever_live.
	(legitimize_tls_address): Ditto.
	(ix86_expand_move): Ditto.
	(ix86_expand_binary_operator): Remove reload_in_progress checks.
	(ix86_expand_unary_operator): Ditto.
	* config/i386/predicates.md (index_register_operand): Ditto.

From-SVN: r222246
2015-04-20 21:24:57 +02:00
Selim Belbachir
87e0ceb78c reorg.c (try_merge_delay_insns): Improve correctness checking for targets with multiple delay slots.
* reorg.c (try_merge_delay_insns): Improve correctness checking
        for targets with multiple delay slots.

From-SVN: r222245
2015-04-20 11:47:10 -06:00
Jeff Law
6581c1cffb re PR tree-optimization/65658 (Jump threading too pessimistic when optimizing for size)
PR tree-optimization/65658
	* tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
	statements too.

	PR tree-optimization/65658
	* gcc.dg/pr65658.c: New test.

From-SVN: r222242
2015-04-20 11:13:52 -06:00
Ilya Verbin
06aca1d5db c-parser.c (c_parser_oacc_enter_exit_data): Remove excess semicolon.
gcc/c/
	* c-parser.c (c_parser_oacc_enter_exit_data): Remove excess semicolon.
	(c_parser_omp_target_update): Add missed %> to error_at ().
gcc/cp/
	* parser.c (cp_parser_omp_target_update): Add missed %> to error_at ().

From-SVN: r222237
2015-04-20 14:55:27 +00:00
Alan Lawrence
69aec55214 [Obvious][AArch64] Delete unused aarch64_simd_emit_pair_result_insn.
* config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
        * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
        Delete.

From-SVN: r222234
2015-04-20 13:35:35 +00:00
Jakub Jelinek
38a4960f5d re PR debug/65807 (ICE () on powerpc64le-linux-gnu)
PR debug/65807
	* dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.

From-SVN: r222232
2015-04-20 15:30:01 +02:00
Richard Biener
c26de36ddc gimple-fold.h (gimple_build): Remove optional valueize arguments.
2015-04-20  Richard Biener  <rguenther@suse.de>

	* gimple-fold.h (gimple_build): Remove optional valueize arguments.
	* gimple-fold.c (gimple_build_valueize): New function.
	(gimple_build): Always use gimple_build_valueize as valueize hook.

From-SVN: r222231
2015-04-20 13:23:59 +00:00
Jonathan Wakely
9adc2d48ac concurrency_extensions.xml: Update documentation on atomics.
* doc/xml/manual/concurrency_extensions.xml: Update documentation
	on atomics.
	* doc/xml/manual/using.xml: Likewise. Improve markup.
	* doc/html/*: Regenerate.

From-SVN: r222230
2015-04-20 12:07:50 +01:00
Alan Lawrence
8b66a2d43b [AArch64] PR/64134: Make aarch64_expand_vector_init use 'ins' more often
gcc/:

	PR target/64134
	* config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
	and overwrite variable parts if <= 1/2 the elements are variable.

gcc/testsuite/:

	PR target/64134
	* gcc.target/aarch64/vec_init_1.c: New test.

From-SVN: r222229
2015-04-20 10:29:26 +00:00
Yvan Roux
86f25864e7 pr65729.c: Restrict to hard float ABI compliant targets.
2015-04-20  Yvan Roux  <yvan.roux@linaro.org>

	* gcc.target/arm/pr65729.c: Restrict to hard float ABI compliant
	targets.

From-SVN: r222228
2015-04-20 09:18:12 +00:00
GCC Administrator
e3d33e73ae Daily bump.
From-SVN: r222227
2015-04-20 00:16:15 +00:00
Vladimir Makarov
a6af1bf9fe re PR rtl-optimization/65805 (Chromium gets miscompiled)
2015-04-19  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/65805
	* lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
	Don't use difference of offset and previous offset if
	update_sp_offset is non-zero.
	(eliminate_regs_in_insn): Ditto.
	* lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
	lra_eliminate_regs_1 call.
	* lra-constraints.c (get_equiv_with_elimination): Ditto.

From-SVN: r222223
2015-04-19 23:48:24 +00:00
William Schmidt
037524d6be Credit Jakub for PR65787 fix
From-SVN: r222220
2015-04-19 15:17:43 +00:00
GCC Administrator
a7adf10bb4 Daily bump.
From-SVN: r222218
2015-04-19 00:16:15 +00:00
Martin Sebor
ee7df53194 pr32627.f03 (strptr): Change size to match the number of non-nul characters.
* gfortran.dg/pr32627.f03 (strptr): Change size to match the number
	of non-nul characters.
	* gfortran.dg/substr_6.f90: Make the NUL character visible on stdout

From-SVN: r222214
2015-04-18 13:23:17 -06:00
Trevor Saunders
67f58944a7 remove need for store_values_directly
This switches all hash_table users to use the layout that stores
elements of type value_type in the hash table instead of the one storing
value_type *.  Since it becomes unused support for the value_type *
layout is removed.

gcc/

	* hash-table.h: Remove version of hash_table that stored value_type *.
	* asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
	config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
	config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
	dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
	gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
	hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
	ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
	loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
	reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
	tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
	tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
	tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
	tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
	tree-ssa-structalias.c, tree-ssa-tail-merge.c,
	tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
	valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.

libcc1/

	* plugin.cc: Adjust for hash_table changes.

gcc/java/

	* jcf-io.c: Adjust for hash_table changes.

gcc/lto/

	* lto.c: Adjust for hash_table changes.

gcc/objc/

	* objc-act.c: Adjust for hash_table changes.

From-SVN: r222213
2015-04-18 18:13:18 +00:00
GCC Administrator
b9923c3538 Daily bump.
From-SVN: r222212
2015-04-18 00:16:14 +00:00
Bill Schmidt
67e6c40529 re PR target/65787 (Miscompile due to bad vector swap optimization for little endian)
[gcc]

2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/65787
	* config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
	subsequent SH_NONE operand does not overwrite an existing *special
	value.
	(adjust_extract): Handle case where a vec_extract operation is
	wrapped in a PARALLEL.

[gcc/testsuite]

2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/65787
	* gcc.target/powerpc/pr65787.c: New.

From-SVN: r222205
2015-04-17 22:05:12 +00:00
Ian Lance Taylor
46f120ca7b re PR go/65798 (runtime.Caller returns ok=true when return data is invalid)
PR go/65798
runtime: In Caller don't return ok == true if PC == 0.

GCC PR 65798 reports that this can happen in some cases.

From-SVN: r222204
2015-04-17 21:59:10 +00:00
H.J. Lu
759fde68ea Don't define ix86_binds_local_p for MacOS nor Windows
PR target/65780
	* config/i386/i386.c (ix86_binds_local_p): Define only if
	TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.

From-SVN: r222201
2015-04-17 14:54:22 -07:00
Ian Lance Taylor
d6c2d7c1ca re PR go/64683 (FAIL: runtime/pprof -- testing.go:278: The entry did not match)
PR go/64683
runtime/pprof: Assume function with no name is in runtime.

GCC PR 65797 causes some of the runtime functions to be
compiled with no name in the debug info.  This in turn causes
the runtime/pprof test to fail as reported in GCC PR 64683.

There are no good choices when a function has no name in the
debug info, but here we assume that if we see such a function
while reading the runtime functions, we assume that it is also
a runtime function.

From-SVN: r222200
2015-04-17 21:29:20 +00:00
Ian Lance Taylor
5fdb119fd5 re PR go/64999 (s390x libgo test failure in TestMemoryProfiler)
PR go/64999
	PR go/65180
runtime: Adjust libbacktrace PC value to what runtime.Callers expects.

From Lynn Boger.

From-SVN: r222196
2015-04-17 19:29:28 +00:00
Jeff Law
f6c72af46f re PR tree-optimization/47679 (Strange uninitialized warning after SRA)
PR tree-optimization/47679
	* Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
	* tree-ssa-scopedtables.c: New file.
	* tree-ssa-scopedtables.h: New file.
	* tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
	(const_and_copies): Change name/type.
	(record_const_or_copy): Move into tree-ssa-scopedtables.c
	(record_const_or_copy_1): Similarly.
	(restore_vars_to_original_value): Similarly.
	(pass_dominator::execute): Create and destroy const_and_copies table.
	(thread_across_edge): Update passing of const_and_copies.
	(record_temporary_equivalence): Use method calls rather than
	manipulating const_and_copies directly.
	(record_equality, cprop_into_successor_phis): Similarly.
	(dom_opt_dom_walker::before_dom_children): Similarly.
	(dom_opt_dom_walker::after_dom_children): Similarly.
	(eliminate_redundant_computations): Similarly.
	* tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
	(record_temporary_equivalence): Likewise.
	(invalidate_equivalences): Likewise.
	(record_temporary_equivalences_from_phis): Update due to type
	change of const_and_copies.  Use method calls rather than
	manipulating the stack directly.
	(record_temporary_equivalences_from_stmts_at_dest): Likewise.
	(thread_through_normal_block, thread_across_edge): Likewise.
	(thread_across_edge): Likewise.
	* tree-ssa-threadedge.h (thread_across_edge): Update prototype.
	* tree-vrp.c: Include tree-ssa-scopedtables.h.  Change type
	of equiv_stack.
	(identify_jump_threads): Update due to type change of equiv_stack.
	(finalize_jump_threads): Delete the equiv_stack when complete.

From-SVN: r222195
2015-04-17 13:24:17 -06:00
Ian Lance Taylor
90e00f872d re PR go/65755 (incorrect reflection of struct fields with gccgo)
PR go/65755
compiler, runtime, reflect: Use reflection string for type comparisons.

Change the runtime and reflect libraries to always use only
the type reflection string to determine whether two types are
equal.  It previously used the PkgPath and Name values for a
type name, but that required a PkgPath that did not match the
gc compiler.

Change the compiler to use the same PkgPath value as the gc
compiler in all cases.

Change the compiler to put the receiver type in the reflection
string for a type defined inside a method.

From-SVN: r222194
2015-04-17 18:19:44 +00:00
Uros Bizjak
fdce7c12f3 i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
* config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
	* config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
	* config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.

From-SVN: r222193
2015-04-17 19:59:24 +02:00
Andreas Tobler
faabf7880c re PR target/65535 (powerpc64-freebsd build failure)
PR target/65535
* config.gcc: Exit with a comment when we do not have a major version
number for the FreeBSD target.

From-SVN: r222192
2015-04-17 19:50:46 +02:00
Chris Manghane
b496063dcd compiler: Escape analysis.
By Chris Manghane.

Comprises three changes to gofrontend repository:

compiler: Add escape information to export data.

compiler: Stack-allocate non-escaping variables.

This change allows variables initialized through make or new
to be allocated on the stack via a temporary variable if they
do not escape their function. It also improves the analysis to
consider situations where variables escape in the standard
library and go testsuite such as:

*nested composite literals and composite literal arguments
*method receivers always escaping
*escape via statements in closures referring to enclosing variables
*escape via calls with multiple return results

compiler: Basic escape analysis for the go frontend.

This is an implementation of the algorithm described in
"Escape Analysis in Java" by Choi et. al.

It relies on dataflow information to discover variable
references to one another. Handles assignments to closures
and association between closures variables and the variables
of the enclosing scope.

Dataflow analysis does not discover references through range
statements e.g. for _, v := range a will not recognize that
all values of v are references to a.

	* Make-lang.in (GO_OBJS): Add go/escape.o.

From-SVN: r222188
2015-04-17 17:10:12 +00:00
Jakub Jelinek
c10b5ea0d8 re PR bootstrap/62077 (--with-build-config=bootstrap-lto fails)
PR bootstrap/62077
	* configure.ac (--enable-stage1-checking): Default to
	release,misc,gimple,rtlflag,tree,types if --disable-checking
	or --enable-checking is not specified and DEV-PHASE is not
	experimental.
	* configure: Regenerated.

From-SVN: r222187
2015-04-17 19:09:20 +02:00
Jakub Jelinek
98c1627cb5 re PR target/65689 ([AArch64] S constraint fails for inline asm at -O0)
PR target/65689
	* genpreds.c (struct constraint_data): Add maybe_allows_reg and
	maybe_allows_mem bitfields.
	(maybe_allows_none_start, maybe_allows_none_end,
	maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
	maybe_allows_mem_end): New variables.
	(compute_maybe_allows): New function.
	(add_constraint): Use it to initialize maybe_allows_reg and
	maybe_allows_mem fields.
	(choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
	is_address constraints such that those that allow neither mem nor
	reg come first, then those that only allow reg but not mem, then
	those that only allow mem but not reg, then the rest.
	(write_allows_reg_mem_function): New function.
	(write_tm_preds_h): Call it.
	* stmt.c (parse_output_constraint, parse_input_constraint): Use
	the generated insn_extra_constraint_allows_reg_mem function
	instead of always setting *allows_reg = true; *allows_mem = true;
	for unknown extra constraints.

	* gcc.target/aarch64/c-output-template-4.c: New test.

From-SVN: r222186
2015-04-17 18:43:28 +02:00
H.J. Lu
96583f22d7 Properly handle uninitialized common symbol
Uninitialized common symbol behavior in executables is target and linker
dependent.  default_binds_local_p_3 is made public and updated to take an
argument to indicate if the linker can guarantee that an uninitialized
common symbol in the executable will still be defined (through COPY
relocation) in the executable.  If common symbol is local to executable,
default_binds_local_p_3 will treat non-external variable as defined
locally.  default_binds_local_p_2 is changed to treat common symbol as
local for non-PIE binaries.

For i386, common symbol is local only for non-PIE binaries.  For x86-64,
common symbol is local only for non-PIE binaries or linker supports copy
reloc in PIE binaries.  If a target treats common symbol as local only
for non-PIE binaries, it can define TARGET_BINDS_LOCAL_P as
default_binds_local_p_2.

gcc/

	PR target/65780
	* output.h (default_binds_local_p_3): New.
	* varasm.c (default_binds_local_p_3): Make it public.  Take an
	argument to indicate if common symbol may be local.  If common
	symbol may be local, treat non-external variable as defined
	locally.
	(default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
	(default_binds_local_p_1): Pass false to default_binds_local_p_3.
	* config/i386/i386.c (ix86_binds_local_p): New.
	(TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
	ix86_binds_local_p.

gcc/testsuite/

	PR target/65780
	* gcc.dg/pr65780-1.c: New test.
	* gcc.dg/pr65780-2.c: Likewise.
	* gcc.target/i386/pr32219-9.c: Likewise.
	* gcc.target/i386/pr32219-1.c (xxx): Make it initialized common
	symbol.
	* gcc.target/i386/pr64317.c (c): Initialize.

From-SVN: r222184
2015-04-17 09:23:24 -07:00
Jakub Jelinek
aeebf48a70 re PR debug/65771 (ICE (in loc_list_from_tree, at dwarf2out.c:14964) on arm-linux-gnueabihf)
PR debug/65771
	* dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
	trying mem_loc_descriptor on XEXP (rtl, 0).

From-SVN: r222181
2015-04-17 16:16:30 +02:00
Martin Liska
bbd08a5dfa Fix IPA memory leaks.
* ipa-cp.c (ipcp_driver): Release prev_edge_clone.
	* ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
	Release symbol_compare_collection.
	* ipa-reference.c: Add TODO that a vector should be released.

From-SVN: r222180
2015-04-17 13:56:15 +00:00
Sivanupandi Pitchumani
c11cdefbd1 re PR target/65296 ([avr] fix various issues with specs file generation)
PR target/65296
	* config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
	to new AVR-LibC file layout (bug #44574).
	(*avrlibc_devicelib): Same.
	* config/avr/avr-mcus.def: Adjust comments.
	* config/avr/avr.opt (nodevicelib): Adjust help.

From-SVN: r222179
2015-04-17 13:54:16 +00:00
H.J. Lu
abd0cdc9c0 Hide __cpu_indicator_init/__cpu_model from linker
We shouldn't call external function, __cpu_indicator_init, while an object
is being relocated since its .got.plt section hasn't been updated.  It
works for non-PIE since no update on .got.plt section is required.  This
patch creates libgcc.so as a linker script, hides __cpu_indicator_init
and __cpu_model in libgcc.so.1 from linker, forces linker to resolve
__cpu_indicator_init and __cpu_model to their hidden definitions in
libgcc.a while providing backward binary compatibility.

gcc/testsuite/

	PR target/65612
	* g++.dg/ext/mv18.C: New test.
	* g++.dg/ext/mv19.C: Likewise.
	* g++.dg/ext/mv20.C: Likewise.
	* g++.dg/ext/mv21.C: Likewise.
	* g++.dg/ext/mv22.C: Likewise.
	* g++.dg/ext/mv23.C: Likewise.

libgcc/

	PR target/65612
	* config.host (tmake_file): Add t-slibgcc-libgcc for Linux/x86.
	* config/i386/cpuinfo.c (__cpu_model): Initialize.
	(__cpu_indicator_init@GCC_4.8.0): New.
	(__cpu_model@GCC_4.8.0): Likewise.
	* config/i386/t-linux (HOST_LIBGCC2_CFLAGS): Add
	-DUSE_ELF_SYMVER.

From-SVN: r222178
2015-04-17 05:58:07 -07:00
Alan Lawrence
05b1fb220b arm_neon.h (vdup_n_f32): Remove forward declaration.
* config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.

From-SVN: r222177
2015-04-17 12:56:45 +00:00
Patrick Palka
2234a9cb75 re PR c++/64527 (Constructor for empty struct not called in some situations)
Fix PR c++/64527

gcc/
	PR c++/64527
	* gimplify.c (gimplify_init_constructor): Always emit a
	side-effecting constructor.

gcc/testsuite/
	PR c++/64527
	* g++.dg/init/pr64527.C: New test.

From-SVN: r222176
2015-04-17 12:14:24 +00:00
Tom de Vries
3f6a2f9e08 Add missing PR lines in ChangeLog
From-SVN: r222175
2015-04-17 09:47:10 +00:00
Tom de Vries
d67cb100c6 Set PROP_gimple_lva for functions without IFN_VA_ARG
2015-04-17  Tom de Vries  <tom@codesourcery.com>

	* gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
	in cfun->curr_properties.
	(gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
	if we generate an IFN_VA_ARG.
	* tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
	function if PROP_gimple_lva is not set in src function.

From-SVN: r222174
2015-04-17 09:27:08 +00:00
Tom de Vries
f8e89441bc Postpone expanding va_arg until pass_stdarg
2015-04-17  Tom de Vries  <tom@codesourcery.com>
	    Michael Matz  <matz@suse.de>

	* gimple-iterator.c (update_modified_stmts): Remove static.
	* gimple-iterator.h (update_modified_stmts): Declare.
	* gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
	(gimplify_va_arg_internal): New function.
	(gimplify_va_arg_expr): Use IFN_VA_ARG.
	* gimplify.h (gimplify_va_arg_internal): Declare.
	* internal-fn.c (expand_VA_ARG): New unreachable function.
	* internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
	* tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
	(expand_ifn_va_arg): New function.
	(pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
	(pass_stdarg::execute): Call expand_ifn_va_arg.
	(pass_data_lower_vaarg): New pass_data.
	(pass_lower_vaarg): New gimple_opt_pass.
	(pass_lower_vaarg::gate, pass_lower_vaarg::execute)
	(make_pass_lower_vaarg): New function.
	* cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
	properties_required field.
	* passes.def (all_passes): Add pass_lower_vaarg.
	* tree-pass.h (PROP_gimple_lva): Add define.
	(make_pass_lower_vaarg): Declare.

	* gcc.dg/tree-ssa/stdarg-2.c: Change f15 scan-tree-dump for target
	x86_64-*-*.

Co-Authored-By: Michael Matz <matz@suse.de>

From-SVN: r222173
2015-04-17 09:26:59 +00:00
Tom de Vries
1691b2e1ca Handle internal_fn in operand_equal_p
2015-04-17  Tom de Vries  <tom@codesourcery.com>

	* fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
	* calls.c (call_expr_flags): Same.

From-SVN: r222172
2015-04-17 09:26:50 +00:00
Tom de Vries
302f08072f Factor optimize_va_list_gpr_fpr_size out of pass_stdarg::execute
2015-04-17  Tom de Vries  <tom@codesourcery.com>

	* tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
	(pass_stdarg::execute): ... here.

From-SVN: r222171
2015-04-17 09:26:41 +00:00
Tom de Vries
8926e325db Add gimple_find_sub_bbs
2015-04-17  Tom de Vries  <tom@codesourcery.com>
	    Michael Matz  <matz@suse.de>

	* tree-cfg.c (make_blocks_1): Factor out of ...
	(make_blocks): ... here.
	(make_edges_bb): Factor out of ...
	(make_edges): ... here.
	(gimple_find_sub_bbs): New function.
	* tree-cfg.h (gimple_find_sub_bbs): Declare.

Co-Authored-By: Michael Matz <matz@suse.de>

From-SVN: r222170
2015-04-17 09:26:33 +00:00
Tom de Vries
cef3bed654 Disable lang_hooks.gimplify_expr in free_lang_data
2015-04-17  Tom de Vries  <tom@codesourcery.com>

	* tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.

From-SVN: r222169
2015-04-17 09:26:24 +00:00