Richard Biener [Mon, 28 Apr 2014 11:30:09 +0000 (11:30 +0000)]
tree-pass.h (execute_pass_list): Adjust prototype.
2014-04-28 Richard Biener <rguenther@suse.de>
* tree-pass.h (execute_pass_list): Adjust prototype.
* passes.c (pass_manager::execute_early_local_passes):
Adjust.
(do_per_function): Change callback signature, push all actual
work to the callbals.
(do_per_function_toporder): Likewise.
(execute_function_dump): Adjust.
(execute_function_todo): Likewise.
(clear_last_verified): Likewise.
(verify_curr_properties): Likewise.
(update_properties_after_pass): Likewise.
(execute_pass_list_1): Split out from ...
(execute_pass_list): ... here. Adjust.
(execute_ipa_pass_list): Likewise.
* cgraphunit.c (cgraph_add_new_function): Adjust.
(analyze_function): Likewise.
(expand_function): Likewise.
* cgraph.c (release_function_body): Free dominance info
here instead of asserting it was magically freed elsewhere.
From-SVN: r209856
Eric Botcazou [Mon, 28 Apr 2014 10:03:46 +0000 (10:03 +0000)]
configure.ac: Tweak GAS check for LEON instructions on SPARC.
* configure.ac: Tweak GAS check for LEON instructions on SPARC.
* configure: Regenerate.
* config/sparc/sparc.opt (muser-mode): New option.
* config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
for LEON3.
(atomic_compare_and_swap_leon3_1): New instruction for LEON3.
* doc/invoke.texi (SPARC options): Document -muser-mode.
From-SVN: r209850
GCC Administrator [Mon, 28 Apr 2014 00:18:40 +0000 (00:18 +0000)]
Daily bump.
From-SVN: r209848
Tim Shen [Sun, 27 Apr 2014 23:48:47 +0000 (23:48 +0000)]
regex_automaton.h (_NFA<>::_M_insert_repeat): Add _S_opcode_repeat support to distingush a loop from _S_opcode_alternative.
2014-04-27 Tim Shen <timshen91@gmail.com>
* include/bits/regex_automaton.h (_NFA<>::_M_insert_repeat):
Add _S_opcode_repeat support to distingush a loop from
_S_opcode_alternative.
* include/bits/regex_automaton.tcc (_State_base::_M_print,
_State_base::_M_dot, _NFA<>::_M_eliminate_dummy,
_StateSeq<>::_M_clone): Likewise.
* include/bits/regex_compiler.tcc (_Compiler<>::_M_quantifier):
Likewise.
* include/bits/regex_executor.tcc (_Executor<>::_M_dfs): Likewise.
* include/bits/regex_scanner.tcc (_Scanner<>::_M_eat_escape_ecma):
Uglify local variable __i.
* include/bits/regex_compiler.h (_BracketMatcher<>::_M_make_cache):
Use size_t instead of int to compare with vector::size().
2014-04-27 Tim Shen <timshen91@gmail.com>
* include/bits/regex_executor.h: Add _M_rep_count to track how
many times this repeat node are visited.
* include/bits/regex_executor.tcc (_Executor<>::_M_rep_once_more,
_Executor<>::_M_dfs): Use _M_rep_count to prevent entering
infinite loop.
2014-04-27 Tim Shen <timshen91@gmail.com>
* include/bits/regex.tcc (__regex_algo_impl<>): Remove
_GLIBCXX_REGEX_DFS_QUANTIFIERS_LIMIT and use
_GLIBCXX_REGEX_USE_THOMPSON_NFA instead.
* include/bits/regex_automaton.h: Remove quantifier counting variable.
* include/bits/regex_automaton.tcc (_State_base::_M_dot):
Adjust debug NFA dump.
From-SVN: r209844
Richard Sandiford [Sun, 27 Apr 2014 21:12:18 +0000 (21:12 +0000)]
cselib.c (find_slot_memmode): Delete.
gcc/
* cselib.c (find_slot_memmode): Delete.
(cselib_hasher): Change compare_type to a struct.
(cselib_hasher::equal): Update accordingly. Don't expect wrapped
constants.
(preserve_constants_and_equivs): Adjust for new compare_type.
(cselib_find_slot): Likewise. Take the mode of the rtx as argument.
(wrap_constant): Delete.
(cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
From-SVN: r209843
Thomas Koenig [Sun, 27 Apr 2014 10:48:56 +0000 (10:48 +0000)]
re PR fortran/59604 (Constant comparisons with -fno-range-check and int(z'...'))
2014-03-27 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/59604
PR fortran/58003
* gfortran.h (gfc_convert_mpz_to_signed): Add prototype.
* arith.c (gfc_int2int): Convert number to signed if
arithmetic overflow is not checked.
* simplify.c (convert_mpz_to_unsigned): Only trigger assert for
size if range checking is in force.
(convert_mpz_to_signed): Make non-static, rename to
(gfc_convert_mpz_to_signed).
(simplify_dshift): Use gfc_convert_mpz_to_signed.
(gfc_simplify_ibclr): Likewise.
(gfc_simplify_ibits): Likewise.
(gfc_simplify_ibset): Likewise.
(simplify_shift): Likewise.
(gfc_simplify_ishiftc): Likewise.
(gfc_simplify_maskr): Likewise.
(gfc_simplify_maskl): Likewise.
2014-03-27 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/59604
PR fortran/58003
* gfortran.dg/no_range_check_3.f90: New test.
From-SVN: r209836
GCC Administrator [Sun, 27 Apr 2014 00:17:03 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r209835
Eric Botcazou [Sat, 26 Apr 2014 23:09:32 +0000 (23:09 +0000)]
* gnatvsn.ads (Library_Version): Bump to 4.10.
From-SVN: r209830
Jerry DeLisle [Sat, 26 Apr 2014 21:56:48 +0000 (21:56 +0000)]
re PR libfortran/52539 (I/O: Wrong result for UTF-8/UCS-4 list-directed and namelist read and nml write)
2014-04-26 Jerry DeLisle <jvdelisle@gcc.gnu>
PR libfortran/52539
* gfortran.dg/namelist_utf8.f90: New test.
From-SVN: r209829
Jerry DeLisle [Sat, 26 Apr 2014 21:52:26 +0000 (21:52 +0000)]
re PR libfortran/52539 (I/O: Wrong result for UTF-8/UCS-4 list-directed and namelist read and nml write)
2014-04-26 Jerry DeLisle <jvdelisle@gcc.gnu>
PR libfortran/52539
* io/list_read.c: Add uchar typedef. (push_char4): New function
to save kind=4 character. (next_char_utf8): New function to read
a single UTF-8 encoded character value. (read_chracter): Update
to use the new functions for reading UTF-8 strings.
(list_formatted_read_scalar): Update to handle list directed
reads of UTF-8 strings. (nml_read_obj): Likewise update for
UTF-8 strings in namelists.
* io/write.c (nml_write_obj): Add kind=4 character support for
namelist writes.
From-SVN: r209828
Markus Trippelsdorf [Sat, 26 Apr 2014 20:18:21 +0000 (20:18 +0000)]
Parallel profiledbootstrap is now supported
Parallel profiledbootstrap is supported on all maintained releases. So
just remove a misleading outdated sentence, that states the opposite,
from doc/install.texi.
2014-04-26 Markus Trippelsdorf <markus@trippelsdorf.de>
* doc/install.texi (Building with profile feedback): Remove
outdated sentence.
From-SVN: r209826
Tom de Vries [Sat, 26 Apr 2014 16:32:56 +0000 (16:32 +0000)]
Fix out-of-bounds array accesses in ldexpxf3.
2014-04-26 Tom de Vries <tom@codesourcery.com>
* config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
array accesses.
From-SVN: r209824
Uros Bizjak [Sat, 26 Apr 2014 14:31:29 +0000 (16:31 +0200)]
alias-30.c (dg-options): Dump only fre1 details.
* gcc.dg/tree-ssa/alias-30.c (dg-options): Dump only fre1 details.
* gcc.dg/vect/pr60505.c: Cleanup vect tree dump.
* g++.dg/ipa/devirt-27.C (dg-options): Remove -fdump-ipa-devirt.
From-SVN: r209823
Chris Manghane [Sat, 26 Apr 2014 03:38:34 +0000 (03:38 +0000)]
compiler: Use backend interface for defining global declarations.
* go-gcc.cc: Include "cgraph.h" and "gimplify.h".
(Gcc_backend::return_statement): Push and pop function.
(Gcc_backend::label): Likewise.
(Gcc_backend::function_defer_statement): Likewise.
(Gcc_backend::switch_statement): Add function parameter.
(Gcc_backend::block): Don't permit function to be NULL.
(Gcc_backend::temporary_variable): Change go_assert to
gcc_assert.
(Gcc_backend::gc_root_variable): New function.
(Gcc_backend::write_global_definitions): New function.
From-SVN: r209819
GCC Administrator [Sat, 26 Apr 2014 00:16:56 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r209818
Cary Coutant [Fri, 25 Apr 2014 23:05:14 +0000 (23:05 +0000)]
Fix a few ICEs and other problems with -fdebug-types-sections.
(1) If a function contains a local typedef of an anonymous structure, GCC
will generate a typedef DIE in the function, where the typedef DIE points
to a structure_type DIE at the top level. That structure_type DIE, if
it's a non-POD, can contain ctor and dtor definitions. This causes an
assertion in should_move_die_to_comdat to fail, as we have up to now
assumed that this could never happen.
(2) With --std=c++11, a template parameter can refer to a local type defined
within a function. Because that local type doesn't qualify for its own
type unit, we copy it as an "unworthy" type into the type unit that refers
to it, but we copy too much, leading to a comdat type unit that contains a
DIE with subprogram definitions rather than declarations. These DIEs may
have DW_AT_low_pc/high_pc or DW_AT_ranges attributes, and consequently can
refer to range list entries that don't get emitted because they're not
marked when the compile unit is scanned, eventually causing an undefined
symbol at link time.
(3) When a class template instantiation is moved into a separate type unit,
it can bring along a lot of other referenced types into the type unit,
especially if the template is derived from another (large) type that
does not have an actually have a type definition in a type unit of its
own. When there are many instantiations of the same template, we get
a lot of duplication, and in the worst case (a template with several
parameters, instantiated multiple times along each dimension), GCC
can end up taking a long time and exhausting available memory.
This combinatorial explosion is being caused by copy_decls_walk, where
it finds a type DIE that is referenced by the type unit, but is not
itself a type unit, and copies a declaration for that type into the
type unit in order to resolve the reference within the type unit.
In the process, copy_decls_walk also copies all of the children of
that DIE. In the case of a base class with member function templates,
every one of the instantiated member functions is copied into every
type unit that references the base class.
gcc/
PR debug/60929
* dwarf2out.c (should_move_die_to_comdat): A type definition
can contain a subprogram definition, but don't move it to a
comdat unit.
(clone_as_declaration): Copy DW_AT_abstract_origin attribute.
(generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
from original DIE.
(clone_tree_hash): Rename to...
(clone_tree_partial): ...this; change callers. Copy
DW_TAG_subprogram DIEs as declarations.
(copy_decls_walk): Don't copy children of a declaration into a
type unit.
gcc/testsuite/
PR debug/60929
* g++.dg/debug/dwarf2/dwarf4-nested.C: New test case.
* g++.dg/debug/dwarf2/dwarf4-typedef.C: Add
-fdebug-types-section flag.
From-SVN: r209812
H.J. Lu [Fri, 25 Apr 2014 20:52:01 +0000 (20:52 +0000)]
Set MODE to SI for alternative 12 in *movsf_internal
PR target/60969
* config/i386/i386.md (*movsf_internal): Set MODE to SI for
alternative 12.
From-SVN: r209811
Lars Gullik Bjønnes [Fri, 25 Apr 2014 19:34:42 +0000 (19:34 +0000)]
re PR libstdc++/60710 (experimental::optional<T> is using T::operator!=)
2014-04-25 Lars Gullik Bjønnes <larsbj@gullik.org>
PR libstdc++/60710
* include/experimental/optional (operator!=): Implement in terms of
operator==.
* testsuite/experimental/optional/relops/1.cc: Remove operator!=.
* testsuite/experimental/optional/relops/2.cc: Likewise.
* testsuite/experimental/optional/relops/3.cc: Likewise.
* testsuite/experimental/optional/relops/4.cc: Likewise.
* testsuite/experimental/optional/relops/5.cc: Likewise.
* testsuite/experimental/optional/relops/6.cc: Likewise.
From-SVN: r209810
Jiong Wang [Fri, 25 Apr 2014 17:00:33 +0000 (17:00 +0000)]
[ARM] Enable tail call optimization for long call
gcc/
* config/arm/predicates.md (call_insn_operand): Add long_call check.
* config/arm/arm.md (sibcall, sibcall_value): Force the address to
reg for long_call.
* config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
restriction.
gcc/testsuite
* gcc.target/arm/tail-long-call.c: New test.
From-SVN: r209808
Jonathan Wakely [Fri, 25 Apr 2014 16:10:25 +0000 (17:10 +0100)]
re PR libstdc++/60958 (Initialization of arrays in tr1/regex ill-formed or with undefined behaviour)
PR libstdc++/60958
* include/tr1/regex (regex_traits::isctype): Comment out broken code.
* testsuite/util/testsuite_regex.h (regex_match_debug): Improve
comment.
From-SVN: r209807
Kyrylo Tkachov [Fri, 25 Apr 2014 14:32:39 +0000 (14:32 +0000)]
[ARM] Initialise T16-related fields in Cortex-A8 tuning struct.
* config/arm/arm.c (arm_cortex_a8_tune): Initialise
T16-related fields.
From-SVN: r209806
Bill Schmidt [Fri, 25 Apr 2014 14:28:58 +0000 (14:28 +0000)]
re PR tree-optimization/60930 (Wrong folding of - ((unsigned long long) a * (unsigned long long) (unsigned int)-1))
[gcc]
2014-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR tree-optimization/60930
* gimple-ssa-strength-reduction.c (create_mul_imm_cand): Reject
creating a multiply candidate by folding two constant
multiplicands when the result overflows.
[gcc/testsuite]
2014-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR tree-optimization/60930
* gcc.dg/torture/pr60930.c: New test.
From-SVN: r209805
Jakub Jelinek [Fri, 25 Apr 2014 13:52:52 +0000 (15:52 +0200)]
re PR tree-optimization/60960 (Wrong result when a vector variable is divided by a literal constant)
PR tree-optimization/60960
* tree-vect-generic.c (expand_vector_operation): Only call
expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
* gcc.c-torture/execute/pr60960.c: New test.
From-SVN: r209802
Marek Polacek [Fri, 25 Apr 2014 13:22:13 +0000 (13:22 +0000)]
* gcc.dg/pr18079-2.c: Fix quoting in dg-warning.
From-SVN: r209801
Tom de Vries [Fri, 25 Apr 2014 11:21:40 +0000 (11:21 +0000)]
Add clobber_reg
2014-04-25 Tom de Vries <tom@codesourcery.com>
* expr.c (clobber_reg_mode): New function.
* expr.h (clobber_reg): New function.
From-SVN: r209800
Tom de Vries [Fri, 25 Apr 2014 11:21:29 +0000 (11:21 +0000)]
Register CALL_INSN_FUNCTION_USAGE in find_all_hard_reg_sets
2014-04-25 Tom de Vries <tom@codesourcery.com>
* rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
clobbers.
From-SVN: r209799
Radovan Obradovic [Fri, 25 Apr 2014 11:21:18 +0000 (11:21 +0000)]
Add implicit parameter to find_all_hard_reg_sets
2014-04-25 Radovan Obradovic <robradovic@mips.com>
Tom de Vries <tom@codesourcery.com>
* rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
handle.
* rtl.h (find_all_hard_reg_sets): Add bool parameter.
* haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
new argument to find_all_hard_reg_sets call.
Co-Authored-By: Tom de Vries <tom@codesourcery.com>
From-SVN: r209798
Kyrylo Tkachov [Fri, 25 Apr 2014 11:09:03 +0000 (11:09 +0000)]
[ARM] Wrap long literals in HOST_WIDE_INT_C in aarch-common.c
* config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
Use HOST_WIDE_INT_C for mask literal.
(aarch_rev16_shleft_mask_imm_p): Likewise.
From-SVN: r209797
Marek Polacek [Fri, 25 Apr 2014 11:04:40 +0000 (11:04 +0000)]
re PR c/18079 (Contradicting function attributes (always_inline vs noinline))
PR c/18079
c/
* c-decl.c (diagnose_mismatched_decls): Warn for mismatched
always_inline/noinline and hot/cold attributes.
c-family/
* c-common.c (handle_noinline_attribute): Warn if the attribute
conflicts with always_inline attribute.
(handle_always_inline_attribute): Warn if the attribute conflicts
with noinline attribute.
testsuite/
* gcc.dg/pr18079.c: New test.
* gcc.dg/pr18079-2.c: New test.
From-SVN: r209796
Uros Bizjak [Fri, 25 Apr 2014 10:51:24 +0000 (12:51 +0200)]
pr60823-2.c: Require effective target vect_simd_clones.
* c-c++-common/gomp/pr60823-2.c: Require effective target
vect_simd_clones.
From-SVN: r209795
Marek Polacek [Fri, 25 Apr 2014 10:49:56 +0000 (10:49 +0000)]
re PR c/60114 (Incorrect column number for -pedantic and -Wconversion)
PR c/60114
c/
* c-parser.c (c_parser_initelt): Pass input_location to
process_init_element.
(c_parser_initval): Pass loc to process_init_element.
* c-tree.h (process_init_element): Adjust declaration.
* c-typeck.c (push_init_level): Pass input_location to
process_init_element.
(pop_init_level): Likewise.
(set_designator): Likewise.
(output_init_element): Add location_t parameter. Pass loc to
digest_init.
(output_pending_init_elements): Pass input_location to
output_init_element.
(process_init_element): Add location_t parameter. Pass loc to
output_init_element.
testsuite/
* gcc.dg/pr60114.c: New test.
From-SVN: r209794
Eric Botcazou [Fri, 25 Apr 2014 10:39:14 +0000 (10:39 +0000)]
re PR target/60941 (miscompilation of firefox javascript interpreter)
PR target/60941
* config/sparc/sparc.md (ashlsi3_extend): Delete.
From-SVN: r209790
Marc Glisse [Fri, 25 Apr 2014 09:23:15 +0000 (11:23 +0200)]
re PR target/56540 (No __SIZEOF__XXX__ macro for __float128)
2014-04-25 Marc Glisse <marc.glisse@inria.fr>
PR preprocessor/56540
* config/i386/i386-c.c (ix86_target_macros): Define
__SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
From-SVN: r209789
Marek Polacek [Fri, 25 Apr 2014 08:22:47 +0000 (08:22 +0000)]
re PR c/60156 (GCC doesn't warn about variadic main)
PR c/60156
* c-common.c (check_main_parameter_types): Warn about variadic main.
* c-c++-common/pr60156.c: New test.
From-SVN: r209787
Marc Glisse [Fri, 25 Apr 2014 08:20:24 +0000 (10:20 +0200)]
testsuite_abi.cc (check_version): Update for CXXABI_1.3.9.
2014-04-25 Marc Glisse <marc.glisse@inria.fr>
* testsuite/util/testsuite_abi.cc (check_version): Update for
CXXABI_1.3.9.
From-SVN: r209786
Rainer Orth [Fri, 25 Apr 2014 08:08:41 +0000 (08:08 +0000)]
Remove LIB_TLS_SPEC on Solaris
* configure.ac (tga_func): Remove.
(LIB_TLS_SPEC): Remove.
* configure: Regenerate.
* config.in: Regenerate.
* config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
From-SVN: r209785
Marc Glisse [Fri, 25 Apr 2014 08:03:08 +0000 (10:03 +0200)]
re PR target/43538 (config/mt-gnu CXXFLAGS_FOR_TARGET)
2014-04-25 Marc Glisse <marc.glisse@inria.fr>
PR target/43538
* mt-gnu: Don't reset CXXFLAGS_FOR_TARGET.
From-SVN: r209784
Rainer Orth [Fri, 25 Apr 2014 08:01:09 +0000 (08:01 +0000)]
Remove SSE execution test in crtfastmath.c
* config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
(sigill_caught, sigill_hdlr): Remove.
From-SVN: r209783
Richard Biener [Fri, 25 Apr 2014 07:47:22 +0000 (07:47 +0000)]
re PR ipa/60912 (wrong code with -O -fno-inline -fipa-pta)
2014-04-25 Richard Biener <rguenther@suse.de>
PR ipa/60912
* tree-ssa-structalias.c (ipa_pta_execute): Compute direct
call stmt use/clobber sets during stmt walk instead of
walking the possibly incomplete set of caller edges.
* g++.dg/opt/pr60912.C: New testcase.
From-SVN: r209780
Richard Biener [Fri, 25 Apr 2014 07:44:40 +0000 (07:44 +0000)]
re PR ipa/60911 (wrong code with -O2 -flto -fipa-pta)
2014-04-25 Richard Biener <rguenther@suse.de>
PR ipa/60911
* passes.c (apply_ipa_transforms): Inline into only caller ...
(execute_one_pass): ... here. Properly bring in function
bodies for nodes we want to apply IPA transforms to.
* gcc.dg/lto/pr60911_0.c: New testcase.
From-SVN: r209779
Ian Lance Taylor [Fri, 25 Apr 2014 04:29:07 +0000 (04:29 +0000)]
re PR go/60931 (libgo has issues when page size is not 4k)
PR go/60931
runtime: Fix garbage collector issue with non 4kB system page size
The go garbage collector tracks memory in terms of 4kB pages.
Most of the code checks getpagesize() at runtime and does the
right thing.
On a 64kB ppc64 box I see SEGVs in long running processes
which has been diagnosed as a bug in scavengelist.
scavengelist does a madvise(MADV_DONTNEED) without rounding
the arguments to the system page size. A strace of one of the
failures shows the problem:
madvise(0xc211030000, 4096, MADV_DONTNEED) = 0
The kernel rounds the length up to 64kB and we mark 60kB of
valid data as no longer needed.
Round start up to a system page and end down before calling
madvise.
From-SVN: r209777
Mike Stump [Fri, 25 Apr 2014 00:53:34 +0000 (00:53 +0000)]
* c.opt (Wshadow-ivar): Default to on.
From-SVN: r209774
Cong Hou [Fri, 25 Apr 2014 00:20:44 +0000 (20:20 -0400)]
re PR tree-optimization/60896 (ICE: in vect_get_vec_def_for_operand, at tree-vect-stmts.c:1449)
2014-04-24 Cong Hou <congh@google.com>
PR tree-optimization/60896
* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
(vect_mark_pattern_stmts): Set the def type of all statements in
PATTERN_DEF_SEQ as vect_internal_def.
2014-04-24 Cong Hou <congh@google.com>
PR tree-optimization/60896
* g++.dg/vect/pr60896.cc: New test.
From-SVN: r209773
GCC Administrator [Fri, 25 Apr 2014 00:16:40 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r209772
Michael Meissner [Thu, 24 Apr 2014 22:42:25 +0000 (22:42 +0000)]
extend.texi (PowerPC Built-in Functions): Document new powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
[gcc]
2014-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
* doc/extend.texi (PowerPC Built-in Functions): Document new
powerpc extended divide, bcd, pack/unpack 128-bit, builtin
functions.
(PowerPC AltiVec/VSX Built-in Functions): Likewise.
* config/rs6000/predicates.md (const_0_to_3_operand): New
predicate to match 0..3 integer constants.
* config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
to support adding miscellaneous builtin functions.
(BU_DFP_MISC_2): Likewise.
(BU_P7_MISC_1): Likewise.
(BU_P7_MISC_2): Likewise.
(BU_P8V_MISC_3): Likewise.
(BU_MISC_1): Likewise.
(BU_MISC_2): Likewise.
(DIVWE): Add extended divide builtin functions.
(DIVWEO): Likewise.
(DIVWEU): Likewise.
(DIVWEUO): Likewise.
(DIVDE): Likewise.
(DIVDEO): Likewise.
(DIVDEU): Likewise.
(DIVDEUO): Likewise.
(DXEX): Add decimal floating-point builtin functions.
(DXEXQ): Likewise.
(DDEDPD): Likewise.
(DDEDPDQ): Likewise.
(DENBCD): Likewise.
(DENBCDQ): Likewise.
(DIEX): Likewise.
(DIEXQ): Likewise.
(DSCLI): Likewise.
(DSCLIQ): Likewise.
(DSCRI): Likewise.
(DSCRIQ): Likewise.
(CDTBCD): Add new BCD builtin functions.
(CBCDTD): Likewise.
(ADDG6S): Likewise.
(BCDADD): Likewise.
(BCDADD_LT): Likewise.
(BCDADD_EQ): Likewise.
(BCDADD_GT): Likewise.
(BCDADD_OV): Likewise.
(BCDSUB): Likewise.
(BCDSUB_LT): Likewise.
(BCDSUB_EQ): Likewise.
(BCDSUB_GT): Likewise.
(BCDSUB_OV): Likewise.
(PACK_TD): Add new pack/unpack 128-bit type builtin functions.
(UNPACK_TD): Likewise.
(PACK_TF): Likewise.
(UNPACK_TF): Likewise.
(UNPACK_TF_0): Likewise.
(UNPACK_TF_1): Likewise.
(PACK_V1TI): Likewise.
(UNPACK_V1TI): Likewise.
* config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
support for decimal floating point builtin functions.
(rs6000_expand_ternop_builtin): Add checks for the new builtin
functions that take constant arguments.
(rs6000_invalid_builtin): Add decimal floating point builtin
support.
(rs6000_init_builtins): Setup long double, _Decimal64, and
_Decimal128 types for new builtin functions.
(builtin_function_type): Set the unsigned flags appropriately for
the new builtin functions.
(rs6000_opt_masks): Add support for decimal floating point builtin
functions.
* config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
floating point builtin functions.
(RS6000_BTM_COMMON): Likewise.
(RS6000_BTI_long_double): Likewise.
(RS6000_BTI_dfloat64): Likewise.
(RS6000_BTI_dfloat128): Likewise.
(long_double_type_internal_node): Likewise.
(dfloat64_type_internal_node): Likewise.
(dfloat128_type_internal_node): Likewise.
* config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
2.07 bcd arithmetic instructions.
(UNSPEC_BCDSUB): Likewise.
(UNSPEC_BCD_OVERFLOW): Likewise.
(UNSPEC_BCD_ADD_SUB): Likewise.
(bcd_add_sub): Likewise.
(BCD_TEST): Likewise.
(bcd<bcd_add_sub>): Likewise.
(bcd<bcd_add_sub>_test): Likewise.
(bcd<bcd_add_sub>_test2): Likewise.
(bcd<bcd_add_sub>_<code>): Likewise.
(peephole2 for combined bcd ops): Likewise.
* config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
decimal floating point builtin functions.
(UNSPEC_DENBCD): Likewise.
(UNSPEC_DXEX): Likewise.
(UNSPEC_DIEX): Likewise.
(UNSPEC_DSCLI): Likewise.
(UNSPEC_DSCRI): Likewise.
(D64_D128): Likewise.
(dfp_suffix): Likewise.
(dfp_ddedpd_<mode>): Likewise.
(dfp_denbcd_<mode>): Likewise.
(dfp_dxex_<mode>): Likewise.
(dfp_diex_<mode>): Likewise.
(dfp_dscli_<mode>): Likewise.
(dfp_dscri_<mode>): Likewise.
* config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
builtin functions.
(UNSPEC_CDTBCD): Likewise.
(UNSPEC_CBCDTD): Likewise.
(UNSPEC_DIVE): Add support for new extended divide builtin
functions.
(UNSPEC_DIVEO): Likewise.
(UNSPEC_DIVEU): Likewise.
(UNSPEC_DIVEUO): Likewise.
(UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
pack/unpack 128-bit types.
(UNSPEC_PACK_128BIT): Likewise.
(idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
(udiv<mode>3): Use idiv_ldiv mode attribute.
(div<mode>3): Likewise.
(addg6s): Add new BCD builtin functions.
(cdtbcd): Likewise.
(cbcdtd): Likewise.
(UNSPEC_DIV_EXTEND): Add support for new extended divide
instructions.
(div_extend): Likewise.
(div<div_extend>_<mode>"): Likewise.
(FP128_64): Add support for new builtin functions to pack/unpack
128-bit types.
(unpack<mode>): Likewise.
(unpacktf_0): Likewise.
(unpacktf_1): Likewise.
(unpack<mode>_dm): Likewise.
(unpack<mode>_nodm): Likewise.
(pack<mode>): Likewise.
(unpackv1ti): Likewise.
(packv1ti): Likewise.
[gcc/testsuite]
2014-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
* gcc.target/powerpc/pack01.c: New test to test the new pack and
unpack builtin functionss for 128-bit types.
* gcc.target/powerpc/pack02.c: Likewise.
* gcc.target/powerpc/pack03.c: Likewise.
* gcc.target/powerpc/extend-divide-1.c: New test to test extended
divide builtin functionss.
* gcc.target/powerpc/extend-divide-2.c: Likewise.
* gcc.target/powerpc/bcd-1.c: New test for the new BCD builtin
functions.
* gcc.target/powerpc/bcd-2.c: Likewise.
* gcc.target/powerpc/bcd-3.c: Likewise.
* gcc.target/powerpc/dfp-builtin-1.c: New test for the new DFP
builtin functionss.
* gcc.target/powerpc/dfp-builtin-2.c: Likewise.
From-SVN: r209768
Vishnu K S [Thu, 24 Apr 2014 22:05:07 +0000 (22:05 +0000)]
avr.c: Add comment on why -fdelete-null-pointer-checks is disabled.
2014-04-24 Vishnu K S <Vishnu.k_s@atmel.com>
* gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
is disabled.
2014-04-24 Vishnu K S <Vishnu.k_s@atmel.com>
* gcc/testsuite/gcc.dg/tree-ssa/isolate-1.c: Skip test if
keeps_null_pointer_checks.
* gcc/testsuite/gcc.dg/tree-ssa/isolate-2.c: Ditto
* gcc/testsuite/gcc.dg/tree-ssa/isolate-3.c: Ditto
* gcc/testsuite/gcc.dg/tree-ssa/isolate-4.c: Ditto
* gcc/testsuite/gcc.dg/tree-ssa/isolate-5.c: Ditto
From-SVN: r209767
Prathamesh Kulkarni [Thu, 24 Apr 2014 21:29:45 +0000 (21:29 +0000)]
c-parser.c (c_parser_sizeof_expression): Reorganize slightly to avoid goto.
* c-parser.c (c_parser_sizeof_expression): Reorganize slightly to
avoid goto.
From-SVN: r209765
Jakub Jelinek [Thu, 24 Apr 2014 21:20:28 +0000 (23:20 +0200)]
c-parser.c (c_parser_omp_atomic): Allow seq_cst before atomic-clause...
gcc/c/
* c-parser.c (c_parser_omp_atomic): Allow seq_cst before
atomic-clause, allow comma in between atomic-clause and
seq_cst.
gcc/cp/
* parser.c (cp_parser_omp_atomic): Allow seq_cst before
atomic-clause, allow comma in between atomic-clause and
seq_cst.
gcc/testsuite/
* c-c++-common/gomp/atomic-16.c: Remove all dg-error directives.
Replace load with read and store with write.
libgomp/
* testsuite/libgomp.c++/atomic-14.C: Allow seq_cst and
atomic type clauses in any order and optional comma in between.
* testsuite/libgomp.c++/atomic-15.C: Likewise.
* testsuite/libgomp.c/atomic-17.c: Likewise.
From-SVN: r209762
Jakub Jelinek [Thu, 24 Apr 2014 21:17:32 +0000 (23:17 +0200)]
tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
* tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
* gimplify.c (omp_is_private): Change last argument's type to int.
Only diagnose lastprivate if the simd argument is 1, only diagnose
linear if the simd argument is 2.
(gimplify_omp_for): Adjust omp_is_private callers. When adding
lastprivate or private, add the clause to OMP_FOR_CLAUSES. Pass
GOVD_EXPLICIT to omp_add_variable. For simd with collapse == 1
create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
* omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
* tree-nested.c (convert_nonlocal_omp_clauses,
convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
* testsuite/libgomp.c/simd-7.c: New test.
* testsuite/libgomp.c/simd-8.c: New test.
* testsuite/libgomp.c/simd-9.c: New test.
* testsuite/libgomp.c/loop-16.c: New test.
From-SVN: r209760
Jeff Law [Thu, 24 Apr 2014 20:45:10 +0000 (14:45 -0600)]
[multiple changes]
2014-04-24 Segher Boessenkool <segher@kernel.crashing.org>
PR target/60822
* config/m68k/m68k.md (extendplussidi): Don't allow memory for
operand 1.
2014-04-24 Jeff Law <law@redhat.com>
PR target/60822
* gcc.c-torture/pr60822.c: New test.
* gcc.c-torture/pr60822.x: New test.
From-SVN: r209759
Dinar Temirbulatov [Thu, 24 Apr 2014 18:51:29 +0000 (22:51 +0400)]
add recored to gcc/testsuite/ChangeLog for PR c++/57958
From-SVN: r209757
Tim Shen [Thu, 24 Apr 2014 18:29:21 +0000 (18:29 +0000)]
regex_automaton.tcc (_StateSeq<>::_M_clone()): Do _M_alt before _M_next.
2014-04-24 Tim Shen <timshen91@gmail.com>
* include/bits/regex_automaton.tcc (_StateSeq<>::_M_clone()):
Do _M_alt before _M_next.
* testsuite/28_regex/basic_regex/multiple_quantifiers.cc: Add testcases.
From-SVN: r209756
Mike Stump [Thu, 24 Apr 2014 16:03:39 +0000 (16:03 +0000)]
Link to bug report.
From-SVN: r209754
Dimitris Papavasiliou [Thu, 24 Apr 2014 15:58:44 +0000 (15:58 +0000)]
flag-types.h (enum ivar_visibility): Add.
2014-04-24 Dimitris Papavasiliou <dpapavas@gmail.com>
* flag-types.h (enum ivar_visibility): Add.
c-family:
* c.opt (Wshadow-ivar, flocal-ivars, fivar-visibility): Add.
objc:
* objc-act.c (objc_ivar_visibility, objc_default_ivar_visibility): Add.
(objc_init): Initialize objc_default_ivar_visibility.
(objc_start_class_interface): Use objc_default_ivar_visibility.
(objc_start_class_implementation): Likewise.
(objc_lookup_ivar): Implement -fno-local-ivars.
From-SVN: r209753
Jincheng Miao [Thu, 24 Apr 2014 15:44:13 +0000 (15:44 +0000)]
zh_CN.po: Fix typo for -mfentry.
2014-04-24 Jincheng Miao <jincheng.miao@gmail.com>
* zh_CN.po: Fix typo for -mfentry.
From-SVN: r209752
Trevor Saunders [Thu, 24 Apr 2014 15:33:30 +0000 (15:33 +0000)]
fixup sh bustage after r209483
When making pass::execute functions take a function * argument I missed
the sh_treg_combine pass, so fix that here.
gcc/
* config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
function * argument.
From-SVN: r209751
Alan Lawrence [Thu, 24 Apr 2014 14:18:48 +0000 (14:18 +0000)]
[AArch64] Enable TBL for big-endian.
gcc/ChangeLog:
2014-04-11 Alan Lawrence <alan.lawrence@arm.com>
* config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
gcc/testsuite/ChangeLog:
2014-04-11 Alan Lawrence <alan.lawrence@arm.com>
* lib/target-supports.exp (check_effective_target_vect_perm): Return
true for aarch64_be.
From-SVN: r209749
Marc Glisse [Thu, 24 Apr 2014 13:58:36 +0000 (15:58 +0200)]
re PR libstdc++/43622 (Incomplete C++ library support for __float128)
2014-04-24 Marc Glisse <marc.glisse@inria.fr>
PR libstdc++/43622
gcc/cp/
* rtti.c (emit_support_tinfos): Do not iterate on
registered_builtin_types (partial revert).
libstdc++/
* config/abi/pre/gnu.ver (CXXABI_1.3.9): Remove __float128 symbols.
* config/abi/pre/gnu-versioned-namespace.ver: Likewise.
* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
From-SVN: r209748
Kyrylo Tkachov [Thu, 24 Apr 2014 11:03:56 +0000 (11:03 +0000)]
Fix warning in libgfortran configure script
* configure.ac: Quote usage of ac_cv_func_clock_gettime in if test.
* configure: Regenerate.
From-SVN: r209747
Andreas Schwab [Thu, 24 Apr 2014 10:44:57 +0000 (10:44 +0000)]
Update libstdc++ baseline symbols for ia64
* config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update for
new CXXABI_1.3.9 symbols.
From-SVN: r209746
Radovan Obradovic [Thu, 24 Apr 2014 10:27:16 +0000 (10:27 +0000)]
-fuse-caller-save - Add test-case
2014-04-24 Radovan Obradovic <robradovic@mips.com>
Tom de Vries <tom@codesourcery.com>
* gcc.dg/fuse-caller-save.c: New test.
Co-Authored-By: Tom de Vries <tom@codesourcery.com>
From-SVN: r209745
Radovan Obradovic [Thu, 24 Apr 2014 09:34:15 +0000 (09:34 +0000)]
-fuse-caller-save - Add new reg-note REG_CALL_DECL
2014-04-24 Radovan Obradovic <robradovic@mips.com>
Tom de Vries <tom@codesourcery.com>
* reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
* calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
reg-note.
* combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
* emit-rtl.c (try_split): Same.
Co-Authored-By: Tom de Vries <tom@codesourcery.com>
From-SVN: r209744
Radovan Obradovic [Thu, 24 Apr 2014 09:34:06 +0000 (09:34 +0000)]
-fuse-caller-save - Add command line option
2014-04-24 Radovan Obradovic <robradovic@mips.com>
Tom de Vries <tom@codesourcery.com>
* common.opt (fuse-caller-save): New option.
Co-Authored-By: Tom de Vries <tom@codesourcery.com>
From-SVN: r209743
Tejas Belagod [Thu, 24 Apr 2014 09:08:48 +0000 (10:08 +0100)]
[AArch64] Reverse TBL indices for big-endian.
2014-04-24 Tejas Belagod <tejas.belagod@arm.com>
* config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of elements
for big-endian.
From-SVN: r209742
Richard Biener [Thu, 24 Apr 2014 08:55:05 +0000 (08:55 +0000)]
expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree during TER and instead use the sepops interface...
2014-04-24 Richard Biener <rguenther@suse.de>
* expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
during TER and instead use the sepops interface for expanding
non-GIMPLE_SINGLE_RHS.
From-SVN: r209741
Rainer Orth [Thu, 24 Apr 2014 08:48:34 +0000 (08:48 +0000)]
Only redefine ASM_PREFERRED_EH_DATA_FORMAT if necessary on Solaris/x86
* config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
if not HAVE_AS_IX86_DIFF_SECT_DELTA.
From-SVN: r209740
Rainer Orth [Thu, 24 Apr 2014 08:38:06 +0000 (08:38 +0000)]
Fix gcc_cv_as_cfi_directive test for Solaris as
* configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
assembler 64-bit option.
* configure: Regenerate.
From-SVN: r209739
Joey Ye [Thu, 24 Apr 2014 08:24:37 +0000 (08:24 +0000)]
nsdmi-union5.C: Change to runtime test.
2014-04-24 Joey Ye <joey.ye@arm.com>
* g++.dg/cpp0x/nsdmi-union5.C: Change to runtime test.
From-SVN: r209738
Kyrylo Tkachov [Thu, 24 Apr 2014 08:22:43 +0000 (08:22 +0000)]
[AArch64] Wire up TARGET_SIMD and TARGET_FLOAT properly
* config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
(TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
(TARGET_FLOAT): Take AARCH64_ISA_FP into account.
(TARGET_CRYPTO): Take TARGET_SIMD into account.
From-SVN: r209737
Kyrylo Tkachov [Thu, 24 Apr 2014 08:05:07 +0000 (08:05 +0000)]
[AArch64] Vectorise bswap[16,32,64]
* config/aarch64/aarch64-builtins.c
(aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
* config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
* config/aarch64/aarch64-simd-builtins.def: Define vector bswap
builtins.
* config/aarch64/iterator.md (VDQHSD): New mode iterator.
(Vrevsuff): New mode attribute.
* lib/target-supports.exp (check_effective_target_vect_bswap): New.
* gcc.dg/vect/vect-bswap16: New test.
* gcc.dg/vect/vect-bswap32: Likewise.
* gcc.dg/vect/vect-bswap64: Likewise.
From-SVN: r209736
Terry Guo [Thu, 24 Apr 2014 06:40:24 +0000 (06:40 +0000)]
arm.h (machine_function): Define variable after_arm_reorg here.
2014-04-24 Terry Guo <terry.guo@arm.com>
* config/arm/arm.h (machine_function): Define variable
after_arm_reorg here.
* config/arm/arm.c (after_arm_reorg): Remove the definition.
(arm_split_constant): Update the way to access variable
after_arm_reorg.
(arm_reorg): Ditto.
(arm_output_function_epilogue): Remove the reset of after_arm_reorg.
From-SVN: r209735
Laurynas Biveinis [Thu, 24 Apr 2014 03:45:14 +0000 (03:45 +0000)]
MAINTAINERS: Move myself from Reviewers to Write After Approval section.
2014-04-24 Laurynas Biveinis <laurynas.biveinis@gmail.com>
* MAINTAINERS: Move myself from Reviewers to Write After Approval
section.
From-SVN: r209732
GCC Administrator [Thu, 24 Apr 2014 00:17:09 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r209731
Tom de Vries [Wed, 23 Apr 2014 21:29:08 +0000 (21:29 +0000)]
Fix DEFHOOKPOD argument order in target-hooks-macros.h comment
2014-04-23 Tom de Vries <tom@codesourcery.com>
* target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
From-SVN: r209725
Dinar Temirbulatov [Wed, 23 Apr 2014 19:34:08 +0000 (23:34 +0400)]
Fix for c++/PR57958
From-SVN: r209721
David Malcolm [Wed, 23 Apr 2014 19:06:40 +0000 (19:06 +0000)]
Change is-a.h to support typedefs of pointers
gcc/
* is-a.h: Update comments to reflect the following changes to the
"pointerness" of the API, making the template parameter match the
return type, allowing use of is-a.h with typedefs of pointers.
(is_a_helper::cast): Return a T rather then a pointer to a T, so
that the return type matches the parameter to the is_a_helper.
(as_a): Likewise.
(dyn_cast): Likewise.
* cgraph.c (cgraph_node_for_asm): Update for removal of implicit
pointer from the is-a.h API.
* cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
(is_a_helper <cgraph_node *>::test): ...this, matching change to
is-a.h API.
(is_a_helper <varpool_node>::test): Likewise, convert to...
(is_a_helper <varpool_node *>::test): ...this.
(varpool_first_variable): Update for removal of implicit pointer
from the is-a.h API.
(varpool_next_variable): Likewise.
(varpool_first_static_initializer): Likewise.
(varpool_next_static_initializer): Likewise.
(varpool_first_defined_variable): Likewise.
(varpool_next_defined_variable): Likewise.
(cgraph_first_defined_function): Likewise.
(cgraph_next_defined_function): Likewise.
(cgraph_first_function): Likewise.
(cgraph_next_function): Likewise.
(cgraph_first_function_with_gimple_body): Likewise.
(cgraph_next_function_with_gimple_body): Likewise.
(cgraph_alias_target): Likewise.
(varpool_alias_target): Likewise.
(cgraph_function_or_thunk_node): Likewise.
(varpool_variable_node): Likewise.
(symtab_real_symbol_p): Likewise.
* cgraphunit.c (referred_to_p): Likewise.
(analyze_functions): Likewise.
(handle_alias_pairs): Likewise.
* gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
* gimple-ssa.h (gimple_vuse_op): Likewise.
(gimple_vdef_op): Likewise.
* gimple-streamer-in.c (input_gimple_stmt): Likewise.
* gimple.c (gimple_build_asm_1): Likewise.
(gimple_build_try): Likewise.
(gimple_build_resx): Likewise.
(gimple_build_eh_dispatch): Likewise.
(gimple_build_omp_for): Likewise.
(gimple_omp_for_set_clauses): Likewise.
* gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
(is_a_helper <gimple_statement_asm *>::test): ...this.
(is_a_helper <gimple_statement_bind>::test): Convert to...
(is_a_helper <gimple_statement_bind *>::test): ...this.
(is_a_helper <gimple_statement_call>::test): Convert to...
(is_a_helper <gimple_statement_call *>::test): ...this.
(is_a_helper <gimple_statement_catch>::test): Convert to...
(is_a_helper <gimple_statement_catch *>::test): ...this.
(is_a_helper <gimple_statement_resx>::test): Convert to...
(is_a_helper <gimple_statement_resx *>::test): ...this.
(is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
(is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
(is_a_helper <gimple_statement_eh_else>::test): Convert to...
(is_a_helper <gimple_statement_eh_else *>::test): ...this.
(is_a_helper <gimple_statement_eh_filter>::test): Convert to...
(is_a_helper <gimple_statement_eh_filter *>::test): ...this.
(is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
(is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
(is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
(is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
(is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
(is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
(is_a_helper <gimple_statement_omp_return>::test): Convert to...
(is_a_helper <gimple_statement_omp_return *>::test): ...this.
(is_a_helper <gimple_statement_omp_continue>::test): Convert to...
(is_a_helper <gimple_statement_omp_continue *>::test): ...this.
(is_a_helper <gimple_statement_omp_critical>::test): Convert to...
(is_a_helper <gimple_statement_omp_critical *>::test): ...this.
(is_a_helper <gimple_statement_omp_for>::test): Convert to...
(is_a_helper <gimple_statement_omp_for *>::test): ...this.
(is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
(is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
(is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
(is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
(is_a_helper <gimple_statement_omp_target>::test): Convert to...
(is_a_helper <gimple_statement_omp_target *>::test): ...this.
(is_a_helper <gimple_statement_omp_sections>::test): Convert to...
(is_a_helper <gimple_statement_omp_sections *>::test): ...this.
(is_a_helper <gimple_statement_omp_single>::test): Convert to...
(is_a_helper <gimple_statement_omp_single *>::test): ...this.
(is_a_helper <gimple_statement_omp_teams>::test): Convert to...
(is_a_helper <gimple_statement_omp_teams *>::test): ...this.
(is_a_helper <gimple_statement_omp_task>::test): Convert to...
(is_a_helper <gimple_statement_omp_task *>::test): ...this.
(is_a_helper <gimple_statement_phi>::test): Convert to...
(is_a_helper <gimple_statement_phi *>::test): ...this.
(is_a_helper <gimple_statement_transaction>::test): Convert to...
(is_a_helper <gimple_statement_transaction *>::test): ...this.
(is_a_helper <gimple_statement_try>::test): Convert to...
(is_a_helper <gimple_statement_try *>::test): ...this.
(is_a_helper <gimple_statement_wce>::test): Convert to...
(is_a_helper <gimple_statement_wce *>::test): ...this.
(is_a_helper <const gimple_statement_asm>::test): Convert to...
(is_a_helper <const gimple_statement_asm *>::test): ...this.
(is_a_helper <const gimple_statement_bind>::test): Convert to...
(is_a_helper <const gimple_statement_bind *>::test): ...this.
(is_a_helper <const gimple_statement_call>::test): Convert to...
(is_a_helper <const gimple_statement_call *>::test): ...this.
(is_a_helper <const gimple_statement_catch>::test): Convert to...
(is_a_helper <const gimple_statement_catch *>::test): ...this.
(is_a_helper <const gimple_statement_resx>::test): Convert to...
(is_a_helper <const gimple_statement_resx *>::test): ...this.
(is_a_helper <const gimple_statement_eh_dispatch>::test):
Convert to...
(is_a_helper <const gimple_statement_eh_dispatch *>::test):
...this.
(is_a_helper <const gimple_statement_eh_filter>::test): Convert
to...
(is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
(is_a_helper <const gimple_statement_omp_atomic_load>::test):
Convert to...
(is_a_helper <const gimple_statement_omp_atomic_load *>::test):
...this.
(is_a_helper <const gimple_statement_omp_atomic_store>::test):
Convert to...
(is_a_helper <const gimple_statement_omp_atomic_store *>::test):
...this.
(is_a_helper <const gimple_statement_omp_return>::test): Convert
to...
(is_a_helper <const gimple_statement_omp_return *>::test): ...this.
(is_a_helper <const gimple_statement_omp_continue>::test): Convert
to...
(is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
(is_a_helper <const gimple_statement_omp_critical>::test): Convert
to...
(is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
(is_a_helper <const gimple_statement_omp_for>::test): Convert to...
(is_a_helper <const gimple_statement_omp_for *>::test): ...this.
(is_a_helper <const gimple_statement_omp_taskreg>::test): Convert
to...
(is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
(is_a_helper <const gimple_statement_omp_parallel>::test): Convert
to...
(is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
(is_a_helper <const gimple_statement_omp_target>::test): Convert
to...
(is_a_helper <const gimple_statement_omp_target *>::test): ...this.
(is_a_helper <const gimple_statement_omp_sections>::test): Convert
to...
(is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
(is_a_helper <const gimple_statement_omp_single>::test): Convert
to...
(is_a_helper <const gimple_statement_omp_single *>::test): ...this.
(is_a_helper <const gimple_statement_omp_teams>::test): Convert
to...
(is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
(is_a_helper <const gimple_statement_omp_task>::test): Convert
to...
(is_a_helper <const gimple_statement_omp_task *>::test): ...this.
(is_a_helper <const gimple_statement_phi>::test): Convert to...
(is_a_helper <const gimple_statement_phi *>::test): ...this.
(is_a_helper <const gimple_statement_transaction>::test): Convert
to...
(is_a_helper <const gimple_statement_transaction *>::test): ...this.
(is_a_helper <const gimple_statement_with_ops>::test): Convert
to...
(is_a_helper <const gimple_statement_with_ops *>::test): ...this.
(is_a_helper <gimple_statement_with_ops>::test): Convert to...
(is_a_helper <gimple_statement_with_ops *>::test): ...this.
(is_a_helper <const gimple_statement_with_memory_ops>::test):
Convert to...
(is_a_helper <const gimple_statement_with_memory_ops *>::test):
...this.
(is_a_helper <gimple_statement_with_memory_ops>::test): Convert
to...
(is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
(gimple_use_ops): Update for removal of implicit pointer from the
is-a.h API.
(gimple_set_use_ops): Likewise.
(gimple_vuse): Likewise.
(gimple_vdef): Likewise.
(gimple_vuse_ptr): Likewise.
(gimple_vdef_ptr): Likewise.
(gimple_set_vuse): Likewise.
(gimple_set_vdef): Likewise.
(gimple_omp_return_set_lhs): Likewise.
(gimple_omp_return_lhs): Likewise.
(gimple_omp_return_lhs_ptr): Likewise.
(gimple_call_fntype): Likewise.
(gimple_call_set_fntype): Likewise.
(gimple_call_set_internal_fn): Likewise.
(gimple_call_use_set): Likewise.
(gimple_call_clobber_set): Likewise.
(gimple_bind_vars): Likewise.
(gimple_bind_set_vars): Likewise.
(gimple_bind_body_ptr): Likewise.
(gimple_bind_set_body): Likewise.
(gimple_bind_add_stmt): Likewise.
(gimple_bind_block): Likewise.
(gimple_bind_set_block): Likewise.
(gimple_asm_ninputs): Likewise.
(gimple_asm_noutputs): Likewise.
(gimple_asm_nclobbers): Likewise.
(gimple_asm_nlabels): Likewise.
(gimple_asm_input_op): Likewise.
(gimple_asm_input_op_ptr): Likewise.
(gimple_asm_output_op): Likewise.
(gimple_asm_output_op_ptr): Likewise.
(gimple_asm_set_output_op): Likewise.
(gimple_asm_clobber_op): Likewise.
(gimple_asm_set_clobber_op): Likewise.
(gimple_asm_label_op): Likewise.
(gimple_asm_set_label_op): Likewise.
(gimple_asm_string): Likewise.
(gimple_catch_types): Likewise.
(gimple_catch_types_ptr): Likewise.
(gimple_catch_handler_ptr): Likewise.
(gimple_catch_set_types): Likewise.
(gimple_catch_set_handler): Likewise.
(gimple_eh_filter_types): Likewise.
(gimple_eh_filter_types_ptr): Likewise.
(gimple_eh_filter_failure_ptr): Likewise.
(gimple_eh_filter_set_types): Likewise.
(gimple_eh_filter_set_failure): Likewise.
(gimple_eh_must_not_throw_fndecl): Likewise.
(gimple_eh_must_not_throw_set_fndecl): Likewise.
(gimple_eh_else_n_body_ptr): Likewise.
(gimple_eh_else_e_body_ptr): Likewise.
(gimple_eh_else_set_n_body): Likewise.
(gimple_eh_else_set_e_body): Likewise.
(gimple_try_eval_ptr): Likewise.
(gimple_try_cleanup_ptr): Likewise.
(gimple_try_set_eval): Likewise.
(gimple_try_set_cleanup): Likewise.
(gimple_wce_cleanup_ptr): Likewise.
(gimple_wce_set_cleanup): Likewise.
(gimple_phi_capacity): Likewise.
(gimple_phi_num_args): Likewise.
(gimple_phi_result): Likewise.
(gimple_phi_result_ptr): Likewise.
(gimple_phi_set_result): Likewise.
(gimple_phi_arg): Likewise.
(gimple_phi_set_arg): Likewise.
(gimple_resx_region): Likewise.
(gimple_resx_set_region): Likewise.
(gimple_eh_dispatch_region): Likewise.
(gimple_eh_dispatch_set_region): Likewise.
(gimple_omp_critical_name): Likewise.
(gimple_omp_critical_name_ptr): Likewise.
(gimple_omp_critical_set_name): Likewise.
(gimple_omp_for_clauses): Likewise.
(gimple_omp_for_clauses_ptr): Likewise.
(gimple_omp_for_set_clauses): Likewise.
(gimple_omp_for_collapse): Likewise.
(gimple_omp_for_index): Likewise.
(gimple_omp_for_index_ptr): Likewise.
(gimple_omp_for_set_index): Likewise.
(gimple_omp_for_initial): Likewise.
(gimple_omp_for_initial_ptr): Likewise.
(gimple_omp_for_set_initial): Likewise.
(gimple_omp_for_final): Likewise.
(gimple_omp_for_final_ptr): Likewise.
(gimple_omp_for_set_final): Likewise.
(gimple_omp_for_incr): Likewise.
(gimple_omp_for_incr_ptr): Likewise.
(gimple_omp_for_set_incr): Likewise.
(gimple_omp_for_pre_body_ptr): Likewise.
(gimple_omp_for_set_pre_body): Likewise.
(gimple_omp_parallel_clauses): Likewise.
(gimple_omp_parallel_clauses_ptr): Likewise.
(gimple_omp_parallel_set_clauses): Likewise.
(gimple_omp_parallel_child_fn): Likewise.
(gimple_omp_parallel_child_fn_ptr): Likewise.
(gimple_omp_parallel_set_child_fn): Likewise.
(gimple_omp_parallel_data_arg): Likewise.
(gimple_omp_parallel_data_arg_ptr): Likewise.
(gimple_omp_parallel_set_data_arg): Likewise.
(gimple_omp_task_clauses): Likewise.
(gimple_omp_task_clauses_ptr): Likewise.
(gimple_omp_task_set_clauses): Likewise.
(gimple_omp_task_child_fn): Likewise.
(gimple_omp_task_child_fn_ptr): Likewise.
(gimple_omp_task_set_child_fn): Likewise.
(gimple_omp_task_data_arg): Likewise.
(gimple_omp_task_data_arg_ptr): Likewise.
(gimple_omp_task_set_data_arg): Likewise.
(gimple_omp_taskreg_clauses): Likewise.
(gimple_omp_taskreg_clauses_ptr): Likewise.
(gimple_omp_taskreg_set_clauses): Likewise.
(gimple_omp_taskreg_child_fn): Likewise.
(gimple_omp_taskreg_child_fn_ptr): Likewise.
(gimple_omp_taskreg_set_child_fn): Likewise.
(gimple_omp_taskreg_data_arg): Likewise.
(gimple_omp_taskreg_data_arg_ptr): Likewise.
(gimple_omp_taskreg_set_data_arg): Likewise.
(gimple_omp_task_copy_fn): Likewise.
(gimple_omp_task_copy_fn_ptr): Likewise.
(gimple_omp_task_set_copy_fn): Likewise.
(gimple_omp_task_arg_size): Likewise.
(gimple_omp_task_arg_size_ptr): Likewise.
(gimple_omp_task_set_arg_size): Likewise.
(gimple_omp_task_arg_align): Likewise.
(gimple_omp_task_arg_align_ptr): Likewise.
(gimple_omp_task_set_arg_align): Likewise.
(gimple_omp_single_clauses): Likewise.
(gimple_omp_single_clauses_ptr): Likewise.
(gimple_omp_single_set_clauses): Likewise.
(gimple_omp_target_clauses): Likewise.
(gimple_omp_target_clauses_ptr): Likewise.
(gimple_omp_target_set_clauses): Likewise.
(gimple_omp_target_child_fn): Likewise.
(gimple_omp_target_child_fn_ptr): Likewise.
(gimple_omp_target_set_child_fn): Likewise.
(gimple_omp_target_data_arg): Likewise.
(gimple_omp_target_data_arg_ptr): Likewise.
(gimple_omp_target_set_data_arg): Likewise.
(gimple_omp_teams_clauses): Likewise.
(gimple_omp_teams_clauses_ptr): Likewise.
(gimple_omp_teams_set_clauses): Likewise.
(gimple_omp_sections_clauses): Likewise.
(gimple_omp_sections_clauses_ptr): Likewise.
(gimple_omp_sections_set_clauses): Likewise.
(gimple_omp_sections_control): Likewise.
(gimple_omp_sections_control_ptr): Likewise.
(gimple_omp_sections_set_control): Likewise.
(gimple_omp_for_set_cond): Likewise.
(gimple_omp_for_cond): Likewise.
(gimple_omp_atomic_store_set_val): Likewise.
(gimple_omp_atomic_store_val): Likewise.
(gimple_omp_atomic_store_val_ptr): Likewise.
(gimple_omp_atomic_load_set_lhs): Likewise.
(gimple_omp_atomic_load_lhs): Likewise.
(gimple_omp_atomic_load_lhs_ptr): Likewise.
(gimple_omp_atomic_load_set_rhs): Likewise.
(gimple_omp_atomic_load_rhs): Likewise.
(gimple_omp_atomic_load_rhs_ptr): Likewise.
(gimple_omp_continue_control_def): Likewise.
(gimple_omp_continue_control_def_ptr): Likewise.
(gimple_omp_continue_set_control_def): Likewise.
(gimple_omp_continue_control_use): Likewise.
(gimple_omp_continue_control_use_ptr): Likewise.
(gimple_omp_continue_set_control_use): Likewise.
(gimple_transaction_body_ptr): Likewise.
(gimple_transaction_label): Likewise.
(gimple_transaction_label_ptr): Likewise.
(gimple_transaction_set_body): Likewise.
(gimple_transaction_set_label): Likewise.
* ipa-devirt.c (build_type_inheritance_graph): Likewise.
* ipa-inline-analysis.c (inline_write_summary): Likewise.
* ipa-ref.c (ipa_record_reference): Likewise.
* ipa-reference.c (analyze_function): Likewise.
(ipa_reference_write_optimization_summary): Likewise.
* ipa.c (symtab_remove_unreachable_nodes): Likewise.
(address_taken_from_non_vtable_p): Likewise.
(comdat_can_be_unshared_p_1): Likewise.
* lto-cgraph.c (lto_output_ref): Likewise.
(add_references): Likewise.
(compute_ltrans_boundary): Likewise.
(output_symtab): Likewise.
(input_ref): Likewise.
(input_cgraph_1): Likewise.
(output_cgraph_opt_summary): Likewise.
* lto-streamer-out.c (lto_output): Likewise.
(output_symbol_p): Likewise.
* lto-streamer.h (lsei_next_function_in_partition): Likewise.
(lsei_start_function_in_partition): Likewise.
(lsei_next_variable_in_partition): Likewise.
(lsei_start_variable_in_partition): Likewise.
* symtab.c (insert_to_assembler_name_hash): Likewise.
(unlink_from_assembler_name_hash): Likewise.
(symtab_unregister_node): Likewise.
(symtab_remove_node): Likewise.
(dump_symtab_node): Likewise.
(verify_symtab_base): Likewise.
(verify_symtab_node): Likewise.
(symtab_make_decl_local): Likewise.
(symtab_alias_ultimate_target): Likewise.
(symtab_resolve_alias): Likewise.
(symtab_get_symbol_partitioning_class): Likewise.
* tree-phinodes.c (allocate_phi_node): Likewise.
(reserve_phi_args_for_new_edge): Likewise.
(remove_phi_args): Likewise.
* varpool.c (varpool_node_for_asm): Likewise.
(varpool_remove_unreferenced_decls): Likewise.
gcc/lto/
* lto-partition.c (add_references_to_partition): Update for
removal of implicit pointer from the is-a.h API.
(add_symbol_to_partition_1): Likewise.
(contained_in_symbol): Likewise.
(undo_partition): Likewise.
(lto_balanced_map): Likewise.
(promote_symbol): Likewise.
* lto-symtab.c (lto_symtab_merge_symbols_1): Likewise.
(lto_symtab_merge_symbols): Likewise.
* lto.c (lto_wpa_write_files): Likewise.
From-SVN: r209719
Jeff Law [Wed, 23 Apr 2014 18:04:46 +0000 (12:04 -0600)]
re PR tree-optimization/60902 (ffmpeg built with gcc 4.9 RC produces incorrect flac playback code)
PR tree-optimization/60902
* tree-ssa-threadedge.c
(record_temporary_equivalences_from_stmts_at_dest): Make sure to
invalidate outputs from statements that do not produce useful
outputs for threading.
PR tree-optimization/60902
* gcc.target/i386/pr60902.c: New test.
From-SVN: r209716
Alex Velenko [Wed, 23 Apr 2014 17:02:49 +0000 (17:02 +0000)]
[AArch64] VDUP Testcases
This patch adds vdup intrinsic testcases for AArch64. those testcases
are nice to have, as it allows to reason about vdup consistency for
both LE and BE compiler flavors.
From-SVN: r209713
Venkataramanan Kumar [Wed, 23 Apr 2014 17:01:39 +0000 (17:01 +0000)]
[AARCH64] Use standard patterns for stack protection.
From-SVN: r209712
Richard Earnshaw [Wed, 23 Apr 2014 17:00:40 +0000 (17:00 +0000)]
[AArch64] Fully support rotate on logical operations.
From-SVN: r209711
James Greenhalgh [Wed, 23 Apr 2014 16:37:05 +0000 (16:37 +0000)]
[ARM] Initialize new tune_params values
gcc/
* config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
(arm_cortex_a12_tune): Likewise.
From-SVN: r209710
Kyrylo Tkachov [Wed, 23 Apr 2014 15:30:53 +0000 (15:30 +0000)]
[AArch64] Add handling of bswap operations in rtx costs
* config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
From-SVN: r209706
Kyrylo Tkachov [Wed, 23 Apr 2014 15:29:06 +0000 (15:29 +0000)]
[ARM][3/3] Recognise bitwise operations leading to SImode rev16
* config/arm/arm.md (arm_rev16si2): New pattern.
(arm_rev16si2_alt): Likewise.
* config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
* gcc.target/arm/rev16.c: New test.
From-SVN: r209705
Kyrylo Tkachov [Wed, 23 Apr 2014 15:26:28 +0000 (15:26 +0000)]
[AArch64][2/3] Recognise rev16 operations on SImode and DImode data
* config/aarch64/aarch64.md (rev16<mode>2): New pattern.
(rev16<mode>2_alt): Likewise.
* config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
* config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
(aarch_rev16_shleft_mask_imm_p): Likewise.
(aarch_rev16_p_1): Likewise.
(aarch_rev16_p): Likewise.
* config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
(aarch_rev16_shright_mask_imm_p): Likewise.
(aarch_rev16_shleft_mask_imm_p): Likewise.
* gcc.target/aarch64/rev16_1.c: New test.
From-SVN: r209704
Kyrylo Tkachov [Wed, 23 Apr 2014 15:23:14 +0000 (15:23 +0000)]
[ARM][1/3] Add rev field to rtx cost tables
* config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
* config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
rev cost.
(cortex_a53_extra_costs): Likewise.
(cortex_a57_extra_costs): Likewise.
* config/arm/arm.c (cortexa9_extra_costs): Likewise.
(cortexa7_extra_costs): Likewise.
(cortexa8_extra_costs): Likewise.
(cortexa12_extra_costs): Likewise.
(cortexa15_extra_costs): Likewise.
(v7m_extra_costs): Likewise.
(arm_new_rtx_costs): Handle BSWAP.
From-SVN: r209703
Kyrylo Tkachov [Wed, 23 Apr 2014 15:20:25 +0000 (15:20 +0000)]
[ARM] Cortex-A8 rtx cost table
* config/arm/arm.c (cortexa8_extra_costs): New table.
(arm_cortex_a8_tune): New tuning struct.
* config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
From-SVN: r209702
Kyrylo Tkachov [Wed, 23 Apr 2014 15:17:54 +0000 (15:17 +0000)]
[ARM] Handle FMA code in rtx costs.
* config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
From-SVN: r209701
Richard Biener [Wed, 23 Apr 2014 13:48:12 +0000 (13:48 +0000)]
Makefile.in (OBJS): Remove loop-unswitch.o.
2014-04-23 Richard Biener <rguenther@suse.de>
* Makefile.in (OBJS): Remove loop-unswitch.o.
* loop-unswitch.c: Delete.
* tree-pass.h (make_pass_rtl_unswitch): Remove.
* passes.def (pass_rtl_unswitch): Likewise.
* loop-init.c (gate_rtl_unswitch): Likewise.
(rtl_unswitch): Likewise.
(pass_data_rtl_unswitch): Likewise.
(pass_rtl_unswitch): Likewise.
(make_pass_rtl_unswitch): Likewise.
* rtl.h (reversed_condition): Likewise.
(compare_and_jump_seq): Likewise.
* loop-iv.c (reversed_condition): Move here from loop-unswitch.c
and make static.
* loop-unroll.c (compare_and_jump_seq): Likewise.
From-SVN: r209698
Richard Biener [Wed, 23 Apr 2014 11:25:27 +0000 (11:25 +0000)]
re PR tree-optimization/60903 (ICE: in verify_loop_structure, at cfgloop.c:1647: : edge from 13 to 14 should be marked irreducible)
2014-04-23 Richard Biener <rguenther@suse.de>
PR tree-optimization/60903
* tree-ssa-loop-im.c (analyze_memory_references): Remove
commented code block.
(execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
loop flags to newly created BBs and edges.
* gcc.dg/torture/pr60903.c: New testcase.
From-SVN: r209694
Marek Polacek [Wed, 23 Apr 2014 10:54:53 +0000 (10:54 +0000)]
c-common.c (handle_tm_wrap_attribute): Tweak error message.
* c-common.c (handle_tm_wrap_attribute): Tweak error message.
From-SVN: r209693
Nick Clifton [Wed, 23 Apr 2014 10:35:49 +0000 (10:35 +0000)]
msp430.c (msp430_handle_option): Move function to msp430-common.c
* config/msp430/msp430.c (msp430_handle_option): Move function
to msp430-common.c
(msp430_option_override): Simplify mcu and mcpu option handling.
(msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult. Add
support for -mhwmult command line option.
(has_32bit_hwmult): Rename to use_32bit_hwmult. Add support for
-mhwmult command line option.
(msp430_hwmult_enabled): Delete.
(msp43o_output_labelref): Add support for -mhwmult command line
option.
* config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
(umulsidi3): Likewise.
* config/msp430/msp430.opt (mmcu): Add Report attribute.
(mcpu, mlarge, msmall): Likewise.
(mhwmult): New option.
* config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
prototype.
(msp430_is_f5_mcu): Remove prototype.
(msp430_use_f5_series_hwmult): Add prototype.
* config/msp430/msp430-opts.h: New file.
* common/config/msp430: New directory.
* common/config/msp430/msp430-common.c: New file.
* config.gcc (msp430): Remove target_has_targetm_common.
* doc/invoke.texi: Document -mhwmult command line option.
From-SVN: r209685
Eric Botcazou [Wed, 23 Apr 2014 10:29:47 +0000 (10:29 +0000)]
Revert
2014-04-22 Richard Henderson <rth@redhat.com>
* gcc-interface/Makefile.in: Support aarch64-linux.
2014-04-22 Eric Botcazou <ebotcazou@adacore.com>
* fe.h (Compiler_Abort): Replace Fat_Pointer with String_Pointer.
(Error_Msg_N): Likewise.
(Error_Msg_NE): Likewise.
(Get_External_Name_With_Suffix): Likewise.
* types.h (Fat_Pointer): Delete.
(String_Pointer): New type.
(DECLARE_STRING_POINTER): New macro.
* gcc-interface/decl.c (create_concat_name): Adjust.
* gcc-interface/trans.c (post_error): Likewise.
(post_error_ne): Likewise.
* gcc-interface/misc.c (internal_error_function): Likewise.
From-SVN: r209684
Andreas Schwab [Wed, 23 Apr 2014 10:07:06 +0000 (10:07 +0000)]
Update libstdc++ baseline symbols for m68k
* config/abi/post/m68k-linux-gnu/baseline_symbols.txt
(CXXABI_1.3.9): New version.
From-SVN: r209683
Nick Clifton [Wed, 23 Apr 2014 09:42:40 +0000 (09:42 +0000)]
cygwin.h (ENDFILE_SPEC): Include default-manifest.o if it can be found in the search path.
* config/i386/cygwin.h (ENDFILE_SPEC): Include
default-manifest.o if it can be found in the search path.
* config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
From-SVN: r209681
Terry Guo [Wed, 23 Apr 2014 08:59:07 +0000 (08:59 +0000)]
arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
2014-04-23 Terry Guo <terry.guo@arm.com>
* config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
From-SVN: r209678
Richard Biener [Wed, 23 Apr 2014 08:27:00 +0000 (08:27 +0000)]
re PR tree-optimization/60895 (error: address taken, but ADDRESSABLE bit not set)
2014-04-23 Richard Biener <rguenther@suse.de>
PR middle-end/60895
* tree-inline.c (declare_return_variable): Use mark_addressable.
* g++.dg/torture/pr60895.C: New testcase.
From-SVN: r209675
Richard Biener [Wed, 23 Apr 2014 08:23:33 +0000 (08:23 +0000)]
re PR tree-optimization/60891 (ICE: SIGSEGV (Invalid write/read) in pre_and_rev_post_order_compute_fn with -O -fno-tree-ch -fno-tree-cselim -fno-tree-dominator-opts)
2014-04-23 Richard Biener <rguenther@suse.de>
PR middle-end/60891
* loop-init.c (loop_optimizer_init): Make sure to apply
LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
* gcc.dg/torture/pr60891.c: New testcase.
From-SVN: r209673
Jakub Jelinek [Wed, 23 Apr 2014 08:20:12 +0000 (10:20 +0200)]
re PR sanitizer/60275 ([UBSAN] Add -f[no-]sanitize-recover/-fsanitize-undefined-trap-on-error to make UBSAN's runtime errors fatal)
PR sanitizer/60275
* common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
New options.
* gcc.c (sanitize_spec_function): Don't return "" for "undefined"
if flag_sanitize_undefined_trap_on_error.
* sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
* ubsan.c (ubsan_instrument_unreachable): Return
__builtin_trap () if flag_sanitize_undefined_trap_on_error.
(ubsan_expand_null_ifn): Emit __builtin_trap ()
if flag_sanitize_undefined_trap_on_error and
__ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
(ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
instrument_bool_enum_load): Emit __builtin_trap () if
flag_sanitize_undefined_trap_on_error and
__builtin_handle_*_abort () if !flag_sanitize_recover.
* doc/invoke.texi (-fsanitize-recover,
-fsanitize-undefined-trap-on-error): Document.
c-family/
* c-ubsan.c (ubsan_instrument_return): Return __builtin_trap ()
if flag_sanitize_undefined_trap_on_error.
(ubsan_instrument_division, ubsan_instrument_shift,
ubsan_instrument_vla): Likewise. Use __ubsan_handle_*_abort ()
if !flag_sanitize_recover.
testsuite/
* g++.dg/ubsan/return-2.C: Revert 2014-03-24 changes, add
-fno-sanitize-recover to dg-options.
* g++.dg/ubsan/cxx11-shift-1.C: Remove c++11 target restriction,
add -std=c++11 to dg-options.
* g++.dg/ubsan/cxx11-shift-2.C: Likewise.
* g++.dg/ubsan/cxx1y-vla.C: Remove c++1y target restriction,
add -std=c++1y to dg-options.
* c-c++-common/ubsan/undefined-1.c: Revert 2014-03-24 changes, add
-fno-sanitize-recover to dg-options.
* c-c++-common/ubsan/overflow-sub-1.c: Likewise.
* c-c++-common/ubsan/vla-4.c: Likewise.
* c-c++-common/ubsan/pr59503.c: Likewise.
* c-c++-common/ubsan/vla-3.c: Likewise.
* c-c++-common/ubsan/save-expr-1.c: Likewise.
* c-c++-common/ubsan/overflow-add-1.c: Likewise.
* c-c++-common/ubsan/shift-3.c: Likewise.
* c-c++-common/ubsan/overflow-1.c: Likewise.
* c-c++-common/ubsan/overflow-negate-2.c: Likewise.
* c-c++-common/ubsan/vla-2.c: Likewise.
* c-c++-common/ubsan/overflow-mul-1.c: Likewise.
* c-c++-common/ubsan/pr60613-1.c: Likewise.
* c-c++-common/ubsan/shift-6.c: Likewise.
* c-c++-common/ubsan/overflow-mul-3.c: Likewise.
* c-c++-common/ubsan/overflow-add-3.c: New test.
* c-c++-common/ubsan/overflow-add-4.c: New test.
* c-c++-common/ubsan/div-by-zero-6.c: New test.
* c-c++-common/ubsan/div-by-zero-7.c: New test.
From-SVN: r209672
Christian Bruel [Wed, 23 Apr 2014 07:30:12 +0000 (09:30 +0200)]
sh.md (mov<mode>): Replace movQIHI.
2014-04-22 Christian Bruel <christian.bruel@st.com>
* config/sh/sh.md (mov<mode>): Replace movQIHI.
Force immediates to SImode.
From-SVN: r209671
Sandra Loosemore [Wed, 23 Apr 2014 02:14:42 +0000 (22:14 -0400)]
nios2.md (UNSPEC_ROUND): New.
2014-04-22 Sandra Loosemore <sandra@codesourcery.com>
gcc/
* config/nios2/nios2.md (UNSPEC_ROUND): New.
(lroundsfsi2): New.
* config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
* config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
* config/nios2/nios2.c (N2F_NO_ERRNO): Define.
(nios2_fpu_insn): Add entry for round.
(N2FPU_NO_ERRNO_P): Define.
(nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
flag_errno_math.
* doc/invoke.texi (Nios II Options): Document -mcustom-round.
gcc/testsuite/
* gcc.target/nios2/custom-fp-conversion.c: Adjust to test that
lroundf generates custom round instruction, too.
From-SVN: r209670