mirror of git://gcc.gnu.org/git/gcc.git
re PR target/61092 (wide-int merge broke alpha bootstrap)
PR target/61092 * config/alpha/alpha.c: Include gimple-iterator.h. (alpha_gimple_fold_builtin): New function. Move ALPHA_BUILTIN_UMULH folding from ... (alpha_fold_builtin): ... here. (TARGET_GIMPLE_FOLD_BUILTIN): New define. From-SVN: r210233
This commit is contained in:
parent
07e4f10aa6
commit
b6db8af6f6
196
gcc/ChangeLog
196
gcc/ChangeLog
|
|
@ -1,12 +1,19 @@
|
||||||
|
2014-05-08 Uros Bizjak <ubizjak@gmail.com>
|
||||||
|
|
||||||
|
PR target/61092
|
||||||
|
* config/alpha/alpha.c: Include gimple-iterator.h.
|
||||||
|
(alpha_gimple_fold_builtin): New function. Move
|
||||||
|
ALPHA_BUILTIN_UMULH folding from ...
|
||||||
|
(alpha_fold_builtin): ... here.
|
||||||
|
(TARGET_GIMPLE_FOLD_BUILTIN): New define.
|
||||||
|
|
||||||
2014-05-08 Wei Mi <wmi@google.com>
|
2014-05-08 Wei Mi <wmi@google.com>
|
||||||
|
|
||||||
PR target/58066
|
PR target/58066
|
||||||
* config/i386/i386.c (ix86_compute_frame_layout):
|
* config/i386/i386.c (ix86_compute_frame_layout): Update
|
||||||
Update preferred_stack_boundary for call, expanded from
|
preferred_stack_boundary for call, expanded from tls descriptor.
|
||||||
tls descriptor.
|
* config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
|
||||||
* config/i386/i386.md:
|
to depend on SP register.
|
||||||
(*tls_global_dynamic_32_gnu): Update RTX to depend on
|
|
||||||
SP register.
|
|
||||||
(*tls_local_dynamic_base_32_gnu): Ditto.
|
(*tls_local_dynamic_base_32_gnu): Ditto.
|
||||||
(*tls_local_dynamic_32_once): Ditto.
|
(*tls_local_dynamic_32_once): Ditto.
|
||||||
(tls_global_dynamic_64_<mode>): Set
|
(tls_global_dynamic_64_<mode>): Set
|
||||||
|
|
@ -171,7 +178,7 @@
|
||||||
2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
||||||
|
|
||||||
* wide-int.cc (UTItype): Define.
|
* wide-int.cc (UTItype): Define.
|
||||||
(UDWtype): Define for appropriate W_TYPE_SIZE.
|
(UDWtype): Define for appropriate W_TYPE_SIZE.
|
||||||
|
|
||||||
2014-05-08 Marc Glisse <marc.glisse@inria.fr>
|
2014-05-08 Marc Glisse <marc.glisse@inria.fr>
|
||||||
|
|
||||||
|
|
@ -353,16 +360,13 @@
|
||||||
(maybe_skip_until): Use translate to take into account
|
(maybe_skip_until): Use translate to take into account
|
||||||
lattices when trying to do disambiguations.
|
lattices when trying to do disambiguations.
|
||||||
(get_continuation_for_phi_1): Likewise.
|
(get_continuation_for_phi_1): Likewise.
|
||||||
(get_continuation_for_phi): Adjust for added translate
|
(get_continuation_for_phi): Adjust for added translate arguments.
|
||||||
arguments.
|
|
||||||
(walk_non_aliased_vuses): Likewise.
|
(walk_non_aliased_vuses): Likewise.
|
||||||
* tree-ssa-alias.h (get_continuation_for_phi): Adjust
|
* tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
|
||||||
prototype.
|
|
||||||
(walk_non_aliased_vuses): Likewise.
|
(walk_non_aliased_vuses): Likewise.
|
||||||
(call_may_clobber_ref_p_1): Declare.
|
(call_may_clobber_ref_p_1): Declare.
|
||||||
* tree-ssa-sccvn.c (vn_reference_lookup_3): Also
|
* tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
|
||||||
disambiguate against calls. Stop early if we are
|
calls. Stop early if we are only supposed to disambiguate.
|
||||||
only supposed to disambiguate.
|
|
||||||
* tree-ssa-pre.c (translate_vuse_through_block): Adjust.
|
* tree-ssa-pre.c (translate_vuse_through_block): Adjust.
|
||||||
|
|
||||||
2014-05-07 Joern Rennecke <joern.rennecke@embecosm.com>
|
2014-05-07 Joern Rennecke <joern.rennecke@embecosm.com>
|
||||||
|
|
@ -1337,9 +1341,10 @@
|
||||||
* ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
|
* ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
|
||||||
|
|
||||||
2014-05-05 Radovan Obradovic <robradovic@mips.com>
|
2014-05-05 Radovan Obradovic <robradovic@mips.com>
|
||||||
Tom de Vries <tom@codesourcery.com>
|
Tom de Vries <tom@codesourcery.com>
|
||||||
|
|
||||||
* target.def (call_fusage_contains_non_callee_clobbers): New DEFHOOKPOD.
|
* target.def (call_fusage_contains_non_callee_clobbers): New
|
||||||
|
DEFHOOKPOD.
|
||||||
* doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
|
* doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
|
||||||
Hooks to @menu.
|
Hooks to @menu.
|
||||||
(@node Miscellaneous Register Hooks): New node.
|
(@node Miscellaneous Register Hooks): New node.
|
||||||
|
|
@ -1365,9 +1370,8 @@
|
||||||
2014-05-05 Richard Biener <rguenther@suse.de>
|
2014-05-05 Richard Biener <rguenther@suse.de>
|
||||||
|
|
||||||
PR middle-end/61010
|
PR middle-end/61010
|
||||||
* fold-const.c (fold_binary_loc): Consistently avoid
|
* fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
|
||||||
canonicalizing X & CST away from a CST that is the mask
|
X & CST away from a CST that is the mask of a mode.
|
||||||
of a mode.
|
|
||||||
|
|
||||||
2014-05-05 Jan-Benedict Glaw <jbglaw@lug-owl.de>
|
2014-05-05 Jan-Benedict Glaw <jbglaw@lug-owl.de>
|
||||||
|
|
||||||
|
|
@ -1686,8 +1690,7 @@
|
||||||
|
|
||||||
* doc/invoke.texi: Fix typo.
|
* doc/invoke.texi: Fix typo.
|
||||||
* tree-vrp.c: Fix typos.
|
* tree-vrp.c: Fix typos.
|
||||||
* gimple.c (infer_nonnull_range): Reorder operands of an &&
|
* gimple.c (infer_nonnull_range): Reorder operands of an && condition.
|
||||||
condition.
|
|
||||||
|
|
||||||
2014-04-29 Zhenqiang Chen <zhenqiang.chen@linaro.org>
|
2014-04-29 Zhenqiang Chen <zhenqiang.chen@linaro.org>
|
||||||
|
|
||||||
|
|
@ -1814,8 +1817,7 @@
|
||||||
2014-04-28 Richard Biener <rguenther@suse.de>
|
2014-04-28 Richard Biener <rguenther@suse.de>
|
||||||
|
|
||||||
* tree-pass.h (execute_pass_list): Adjust prototype.
|
* tree-pass.h (execute_pass_list): Adjust prototype.
|
||||||
* passes.c (pass_manager::execute_early_local_passes):
|
* passes.c (pass_manager::execute_early_local_passes): Adjust.
|
||||||
Adjust.
|
|
||||||
(do_per_function): Change callback signature, push all actual
|
(do_per_function): Change callback signature, push all actual
|
||||||
work to the callbals.
|
work to the callbals.
|
||||||
(do_per_function_toporder): Likewise.
|
(do_per_function_toporder): Likewise.
|
||||||
|
|
@ -1866,18 +1868,18 @@
|
||||||
|
|
||||||
2014-04-25 Cary Coutant <ccoutant@google.com>
|
2014-04-25 Cary Coutant <ccoutant@google.com>
|
||||||
|
|
||||||
PR debug/60929
|
PR debug/60929
|
||||||
* dwarf2out.c (should_move_die_to_comdat): A type definition
|
* dwarf2out.c (should_move_die_to_comdat): A type definition
|
||||||
can contain a subprogram definition, but don't move it to a
|
can contain a subprogram definition, but don't move it to a
|
||||||
comdat unit.
|
comdat unit.
|
||||||
(clone_as_declaration): Copy DW_AT_abstract_origin attribute.
|
(clone_as_declaration): Copy DW_AT_abstract_origin attribute.
|
||||||
(generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
|
(generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
|
||||||
from original DIE.
|
from original DIE.
|
||||||
(clone_tree_hash): Rename to...
|
(clone_tree_hash): Rename to...
|
||||||
(clone_tree_partial): ...this; change callers. Copy
|
(clone_tree_partial): ...this; change callers. Copy
|
||||||
DW_TAG_subprogram DIEs as declarations.
|
DW_TAG_subprogram DIEs as declarations.
|
||||||
(copy_decls_walk): Don't copy children of a declaration into a
|
(copy_decls_walk): Don't copy children of a declaration into a
|
||||||
type unit.
|
type unit.
|
||||||
|
|
||||||
2014-04-25 H.J. Lu <hongjiu.lu@intel.com>
|
2014-04-25 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
|
@ -1895,8 +1897,7 @@
|
||||||
|
|
||||||
2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||||||
|
|
||||||
* config/arm/arm.c (arm_cortex_a8_tune): Initialise
|
* config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
|
||||||
T16-related fields.
|
|
||||||
|
|
||||||
2014-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
2014-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||||||
|
|
||||||
|
|
@ -1922,7 +1923,7 @@
|
||||||
clobbers.
|
clobbers.
|
||||||
|
|
||||||
2014-04-25 Radovan Obradovic <robradovic@mips.com>
|
2014-04-25 Radovan Obradovic <robradovic@mips.com>
|
||||||
Tom de Vries <tom@codesourcery.com>
|
Tom de Vries <tom@codesourcery.com>
|
||||||
|
|
||||||
* rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
|
* rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
|
||||||
handle.
|
handle.
|
||||||
|
|
@ -1980,8 +1981,7 @@
|
||||||
2014-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
|
2014-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||||||
|
|
||||||
* doc/extend.texi (PowerPC Built-in Functions): Document new
|
* doc/extend.texi (PowerPC Built-in Functions): Document new
|
||||||
powerpc extended divide, bcd, pack/unpack 128-bit, builtin
|
powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
|
||||||
functions.
|
|
||||||
(PowerPC AltiVec/VSX Built-in Functions): Likewise.
|
(PowerPC AltiVec/VSX Built-in Functions): Likewise.
|
||||||
|
|
||||||
* config/rs6000/predicates.md (const_0_to_3_operand): New
|
* config/rs6000/predicates.md (const_0_to_3_operand): New
|
||||||
|
|
@ -2041,8 +2041,7 @@
|
||||||
support for decimal floating point builtin functions.
|
support for decimal floating point builtin functions.
|
||||||
(rs6000_expand_ternop_builtin): Add checks for the new builtin
|
(rs6000_expand_ternop_builtin): Add checks for the new builtin
|
||||||
functions that take constant arguments.
|
functions that take constant arguments.
|
||||||
(rs6000_invalid_builtin): Add decimal floating point builtin
|
(rs6000_invalid_builtin): Add decimal floating point builtin support.
|
||||||
support.
|
|
||||||
(rs6000_init_builtins): Setup long double, _Decimal64, and
|
(rs6000_init_builtins): Setup long double, _Decimal64, and
|
||||||
_Decimal128 types for new builtin functions.
|
_Decimal128 types for new builtin functions.
|
||||||
(builtin_function_type): Set the unsigned flags appropriately for
|
(builtin_function_type): Set the unsigned flags appropriately for
|
||||||
|
|
@ -2093,8 +2092,7 @@
|
||||||
builtin functions.
|
builtin functions.
|
||||||
(UNSPEC_CDTBCD): Likewise.
|
(UNSPEC_CDTBCD): Likewise.
|
||||||
(UNSPEC_CBCDTD): Likewise.
|
(UNSPEC_CBCDTD): Likewise.
|
||||||
(UNSPEC_DIVE): Add support for new extended divide builtin
|
(UNSPEC_DIVE): Add support for new extended divide builtin functions.
|
||||||
functions.
|
|
||||||
(UNSPEC_DIVEO): Likewise.
|
(UNSPEC_DIVEO): Likewise.
|
||||||
(UNSPEC_DIVEU): Likewise.
|
(UNSPEC_DIVEU): Likewise.
|
||||||
(UNSPEC_DIVEUO): Likewise.
|
(UNSPEC_DIVEUO): Likewise.
|
||||||
|
|
@ -2107,8 +2105,7 @@
|
||||||
(addg6s): Add new BCD builtin functions.
|
(addg6s): Add new BCD builtin functions.
|
||||||
(cdtbcd): Likewise.
|
(cdtbcd): Likewise.
|
||||||
(cbcdtd): Likewise.
|
(cbcdtd): Likewise.
|
||||||
(UNSPEC_DIV_EXTEND): Add support for new extended divide
|
(UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
|
||||||
instructions.
|
|
||||||
(div_extend): Likewise.
|
(div_extend): Likewise.
|
||||||
(div<div_extend>_<mode>"): Likewise.
|
(div<div_extend>_<mode>"): Likewise.
|
||||||
(FP128_64): Add support for new builtin functions to pack/unpack
|
(FP128_64): Add support for new builtin functions to pack/unpack
|
||||||
|
|
@ -2164,7 +2161,7 @@
|
||||||
* config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
|
* config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
|
||||||
|
|
||||||
2014-04-24 Radovan Obradovic <robradovic@mips.com>
|
2014-04-24 Radovan Obradovic <robradovic@mips.com>
|
||||||
Tom de Vries <tom@codesourcery.com>
|
Tom de Vries <tom@codesourcery.com>
|
||||||
|
|
||||||
* reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
|
* 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
|
* calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
|
||||||
|
|
@ -2173,14 +2170,14 @@
|
||||||
* emit-rtl.c (try_split): Same.
|
* emit-rtl.c (try_split): Same.
|
||||||
|
|
||||||
2014-04-24 Radovan Obradovic <robradovic@mips.com>
|
2014-04-24 Radovan Obradovic <robradovic@mips.com>
|
||||||
Tom de Vries <tom@codesourcery.com>
|
Tom de Vries <tom@codesourcery.com>
|
||||||
|
|
||||||
* common.opt (fuse-caller-save): New option.
|
* common.opt (fuse-caller-save): New option.
|
||||||
|
|
||||||
2014-04-24 Tejas Belagod <tejas.belagod@arm.com>
|
2014-04-24 Tejas Belagod <tejas.belagod@arm.com>
|
||||||
|
|
||||||
* config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of elements
|
* config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
|
||||||
for big-endian.
|
elements for big-endian.
|
||||||
|
|
||||||
2014-04-24 Richard Biener <rguenther@suse.de>
|
2014-04-24 Richard Biener <rguenther@suse.de>
|
||||||
|
|
||||||
|
|
@ -2345,12 +2342,9 @@
|
||||||
(is_a_helper <const gimple_statement_catch *>::test): ...this.
|
(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): Convert to...
|
||||||
(is_a_helper <const gimple_statement_resx *>::test): ...this.
|
(is_a_helper <const gimple_statement_resx *>::test): ...this.
|
||||||
(is_a_helper <const gimple_statement_eh_dispatch>::test):
|
(is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
|
||||||
Convert to...
|
(is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
|
||||||
(is_a_helper <const gimple_statement_eh_dispatch *>::test):
|
(is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
|
||||||
...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_eh_filter *>::test): ...this.
|
||||||
(is_a_helper <const gimple_statement_omp_atomic_load>::test):
|
(is_a_helper <const gimple_statement_omp_atomic_load>::test):
|
||||||
Convert to...
|
Convert to...
|
||||||
|
|
@ -2360,8 +2354,7 @@
|
||||||
Convert to...
|
Convert to...
|
||||||
(is_a_helper <const gimple_statement_omp_atomic_store *>::test):
|
(is_a_helper <const gimple_statement_omp_atomic_store *>::test):
|
||||||
...this.
|
...this.
|
||||||
(is_a_helper <const gimple_statement_omp_return>::test): Convert
|
(is_a_helper <const gimple_statement_omp_return>::test): Convert to...
|
||||||
to...
|
|
||||||
(is_a_helper <const gimple_statement_omp_return *>::test): ...this.
|
(is_a_helper <const gimple_statement_omp_return *>::test): ...this.
|
||||||
(is_a_helper <const gimple_statement_omp_continue>::test): Convert
|
(is_a_helper <const gimple_statement_omp_continue>::test): Convert
|
||||||
to...
|
to...
|
||||||
|
|
@ -2371,43 +2364,35 @@
|
||||||
(is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
|
(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): Convert to...
|
||||||
(is_a_helper <const gimple_statement_omp_for *>::test): ...this.
|
(is_a_helper <const gimple_statement_omp_for *>::test): ...this.
|
||||||
(is_a_helper <const gimple_statement_omp_taskreg>::test): Convert
|
(is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
|
||||||
to...
|
|
||||||
(is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
|
(is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
|
||||||
(is_a_helper <const gimple_statement_omp_parallel>::test): Convert
|
(is_a_helper <const gimple_statement_omp_parallel>::test): Convert
|
||||||
to...
|
to...
|
||||||
(is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
|
(is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
|
||||||
(is_a_helper <const gimple_statement_omp_target>::test): Convert
|
(is_a_helper <const gimple_statement_omp_target>::test): Convert to...
|
||||||
to...
|
|
||||||
(is_a_helper <const gimple_statement_omp_target *>::test): ...this.
|
(is_a_helper <const gimple_statement_omp_target *>::test): ...this.
|
||||||
(is_a_helper <const gimple_statement_omp_sections>::test): Convert
|
(is_a_helper <const gimple_statement_omp_sections>::test): Convert
|
||||||
to...
|
to...
|
||||||
(is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
|
(is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
|
||||||
(is_a_helper <const gimple_statement_omp_single>::test): Convert
|
(is_a_helper <const gimple_statement_omp_single>::test): Convert to...
|
||||||
to...
|
|
||||||
(is_a_helper <const gimple_statement_omp_single *>::test): ...this.
|
(is_a_helper <const gimple_statement_omp_single *>::test): ...this.
|
||||||
(is_a_helper <const gimple_statement_omp_teams>::test): Convert
|
(is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
|
||||||
to...
|
|
||||||
(is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
|
(is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
|
||||||
(is_a_helper <const gimple_statement_omp_task>::test): Convert
|
(is_a_helper <const gimple_statement_omp_task>::test): Convert to...
|
||||||
to...
|
|
||||||
(is_a_helper <const gimple_statement_omp_task *>::test): ...this.
|
(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): Convert to...
|
||||||
(is_a_helper <const gimple_statement_phi *>::test): ...this.
|
(is_a_helper <const gimple_statement_phi *>::test): ...this.
|
||||||
(is_a_helper <const gimple_statement_transaction>::test): Convert
|
(is_a_helper <const gimple_statement_transaction>::test): Convert to...
|
||||||
to...
|
|
||||||
(is_a_helper <const gimple_statement_transaction *>::test): ...this.
|
(is_a_helper <const gimple_statement_transaction *>::test): ...this.
|
||||||
(is_a_helper <const gimple_statement_with_ops>::test): Convert
|
(is_a_helper <const gimple_statement_with_ops>::test): Convert to...
|
||||||
to...
|
|
||||||
(is_a_helper <const gimple_statement_with_ops *>::test): ...this.
|
(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): Convert to...
|
||||||
(is_a_helper <gimple_statement_with_ops *>::test): ...this.
|
(is_a_helper <gimple_statement_with_ops *>::test): ...this.
|
||||||
(is_a_helper <const gimple_statement_with_memory_ops>::test):
|
(is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
|
||||||
Convert to...
|
to...
|
||||||
(is_a_helper <const gimple_statement_with_memory_ops *>::test):
|
(is_a_helper <const gimple_statement_with_memory_ops *>::test):
|
||||||
...this.
|
...this.
|
||||||
(is_a_helper <gimple_statement_with_memory_ops>::test): Convert
|
(is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
|
||||||
to...
|
|
||||||
(is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
|
(is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
|
||||||
|
|
||||||
(gimple_use_ops): Update for removal of implicit pointer from the
|
(gimple_use_ops): Update for removal of implicit pointer from the
|
||||||
|
|
@ -2628,7 +2613,7 @@
|
||||||
invalidate outputs from statements that do not produce useful
|
invalidate outputs from statements that do not produce useful
|
||||||
outputs for threading.
|
outputs for threading.
|
||||||
|
|
||||||
2014-04-23 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
|
2014-04-23 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
|
||||||
|
|
||||||
* config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
|
* config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
|
||||||
(stack_protect_set_<mode>, stack_protect_test_<mode>): Add
|
(stack_protect_set_<mode>, stack_protect_test_<mode>): Add
|
||||||
|
|
@ -2657,41 +2642,41 @@
|
||||||
|
|
||||||
2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||||||
|
|
||||||
* config/aarch64/aarch64.md (rev16<mode>2): New pattern.
|
* config/aarch64/aarch64.md (rev16<mode>2): New pattern.
|
||||||
(rev16<mode>2_alt): Likewise.
|
(rev16<mode>2_alt): Likewise.
|
||||||
* config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
|
* config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
|
||||||
* config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
|
* config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
|
||||||
(aarch_rev16_shleft_mask_imm_p): Likewise.
|
(aarch_rev16_shleft_mask_imm_p): Likewise.
|
||||||
(aarch_rev16_p_1): Likewise.
|
(aarch_rev16_p_1): Likewise.
|
||||||
(aarch_rev16_p): Likewise.
|
(aarch_rev16_p): Likewise.
|
||||||
* config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
|
* config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
|
||||||
(aarch_rev16_shright_mask_imm_p): Likewise.
|
(aarch_rev16_shright_mask_imm_p): Likewise.
|
||||||
(aarch_rev16_shleft_mask_imm_p): Likewise.
|
(aarch_rev16_shleft_mask_imm_p): Likewise.
|
||||||
|
|
||||||
2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||||||
|
|
||||||
* config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
|
* config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
|
||||||
* config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
|
* config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
|
||||||
rev cost.
|
rev cost.
|
||||||
(cortex_a53_extra_costs): Likewise.
|
(cortex_a53_extra_costs): Likewise.
|
||||||
(cortex_a57_extra_costs): Likewise.
|
(cortex_a57_extra_costs): Likewise.
|
||||||
* config/arm/arm.c (cortexa9_extra_costs): Likewise.
|
* config/arm/arm.c (cortexa9_extra_costs): Likewise.
|
||||||
(cortexa7_extra_costs): Likewise.
|
(cortexa7_extra_costs): Likewise.
|
||||||
(cortexa8_extra_costs): Likewise.
|
(cortexa8_extra_costs): Likewise.
|
||||||
(cortexa12_extra_costs): Likewise.
|
(cortexa12_extra_costs): Likewise.
|
||||||
(cortexa15_extra_costs): Likewise.
|
(cortexa15_extra_costs): Likewise.
|
||||||
(v7m_extra_costs): Likewise.
|
(v7m_extra_costs): Likewise.
|
||||||
(arm_new_rtx_costs): Handle BSWAP.
|
(arm_new_rtx_costs): Handle BSWAP.
|
||||||
|
|
||||||
2013-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
2013-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||||||
|
|
||||||
* config/arm/arm.c (cortexa8_extra_costs): New table.
|
* config/arm/arm.c (cortexa8_extra_costs): New table.
|
||||||
(arm_cortex_a8_tune): New tuning struct.
|
(arm_cortex_a8_tune): New tuning struct.
|
||||||
* config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
|
* config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
|
||||||
|
|
||||||
2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||||||
|
|
||||||
* config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
|
* config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
|
||||||
|
|
||||||
2014-04-23 Richard Biener <rguenther@suse.de>
|
2014-04-23 Richard Biener <rguenther@suse.de>
|
||||||
|
|
||||||
|
|
@ -2727,8 +2712,7 @@
|
||||||
(has_32bit_hwmult): Rename to use_32bit_hwmult. Add support for
|
(has_32bit_hwmult): Rename to use_32bit_hwmult. Add support for
|
||||||
-mhwmult command line option.
|
-mhwmult command line option.
|
||||||
(msp430_hwmult_enabled): Delete.
|
(msp430_hwmult_enabled): Delete.
|
||||||
(msp43o_output_labelref): Add support for -mhwmult command line
|
(msp43o_output_labelref): Add support for -mhwmult command line option.
|
||||||
option.
|
|
||||||
* config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
|
* config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
|
||||||
(umulsidi3): Likewise.
|
(umulsidi3): Likewise.
|
||||||
* config/msp430/msp430.opt (mmcu): Add Report attribute.
|
* config/msp430/msp430.opt (mmcu): Add Report attribute.
|
||||||
|
|
@ -3144,8 +3128,7 @@
|
||||||
|
|
||||||
* gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
|
* gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
|
||||||
Pattern extended.
|
Pattern extended.
|
||||||
* config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator
|
* config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
|
||||||
extended.
|
|
||||||
(sqabs): Likewise.
|
(sqabs): Likewise.
|
||||||
* config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
|
* config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
|
||||||
(vqnegd_s64): Likewise.
|
(vqnegd_s64): Likewise.
|
||||||
|
|
@ -3262,12 +3245,9 @@
|
||||||
|
|
||||||
2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
|
2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
|
||||||
|
|
||||||
* config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro
|
* config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
|
||||||
added.
|
* config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
|
||||||
* config/aarch64/aarch64-simd-builtins.def (frintn): Use added
|
* config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
|
||||||
macro.
|
|
||||||
* config/aarch64/aarch64-simd.md (<frint_pattern>): Comment
|
|
||||||
corrected.
|
|
||||||
* config/aarch64/aarch64.md (<frint_pattern>): Likewise.
|
* config/aarch64/aarch64.md (<frint_pattern>): Likewise.
|
||||||
* config/aarch64/arm_neon.h (vrnd_f64): Added.
|
* config/aarch64/arm_neon.h (vrnd_f64): Added.
|
||||||
(vrnda_f64): Likewise.
|
(vrnda_f64): Likewise.
|
||||||
|
|
|
||||||
|
|
@ -62,6 +62,7 @@ along with GCC; see the file COPYING3. If not see
|
||||||
#include "gimple-expr.h"
|
#include "gimple-expr.h"
|
||||||
#include "is-a.h"
|
#include "is-a.h"
|
||||||
#include "gimple.h"
|
#include "gimple.h"
|
||||||
|
#include "gimple-iterator.h"
|
||||||
#include "gimplify.h"
|
#include "gimplify.h"
|
||||||
#include "gimple-ssa.h"
|
#include "gimple-ssa.h"
|
||||||
#include "stringpool.h"
|
#include "stringpool.h"
|
||||||
|
|
@ -7042,9 +7043,6 @@ alpha_fold_builtin (tree fndecl, int n_args, tree *op,
|
||||||
case ALPHA_BUILTIN_MSKQH:
|
case ALPHA_BUILTIN_MSKQH:
|
||||||
return alpha_fold_builtin_mskxx (op, opint, op_const, 0xff, true);
|
return alpha_fold_builtin_mskxx (op, opint, op_const, 0xff, true);
|
||||||
|
|
||||||
case ALPHA_BUILTIN_UMULH:
|
|
||||||
return fold_build2 (MULT_HIGHPART_EXPR, alpha_dimode_u, op[0], op[1]);
|
|
||||||
|
|
||||||
case ALPHA_BUILTIN_ZAP:
|
case ALPHA_BUILTIN_ZAP:
|
||||||
opint[1] ^= 0xff;
|
opint[1] ^= 0xff;
|
||||||
/* FALLTHRU */
|
/* FALLTHRU */
|
||||||
|
|
@ -7094,6 +7092,49 @@ alpha_fold_builtin (tree fndecl, int n_args, tree *op,
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
alpha_gimple_fold_builtin (gimple_stmt_iterator *gsi)
|
||||||
|
{
|
||||||
|
bool changed = false;
|
||||||
|
gimple stmt = gsi_stmt (*gsi);
|
||||||
|
tree call = gimple_call_fn (stmt);
|
||||||
|
gimple new_stmt = NULL;
|
||||||
|
|
||||||
|
if (call)
|
||||||
|
{
|
||||||
|
tree fndecl = gimple_call_fndecl (stmt);
|
||||||
|
|
||||||
|
if (fndecl)
|
||||||
|
{
|
||||||
|
tree arg0, arg1;
|
||||||
|
|
||||||
|
switch (DECL_FUNCTION_CODE (fndecl))
|
||||||
|
{
|
||||||
|
case ALPHA_BUILTIN_UMULH:
|
||||||
|
arg0 = gimple_call_arg (stmt, 0);
|
||||||
|
arg1 = gimple_call_arg (stmt, 1);
|
||||||
|
|
||||||
|
new_stmt
|
||||||
|
= gimple_build_assign_with_ops (MULT_HIGHPART_EXPR,
|
||||||
|
gimple_call_lhs (stmt),
|
||||||
|
arg0,
|
||||||
|
arg1);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (new_stmt)
|
||||||
|
{
|
||||||
|
gsi_replace (gsi, new_stmt, true);
|
||||||
|
changed = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return changed;
|
||||||
|
}
|
||||||
|
|
||||||
/* This page contains routines that are used to determine what the function
|
/* This page contains routines that are used to determine what the function
|
||||||
prologue and epilogue code will do and write them out. */
|
prologue and epilogue code will do and write them out. */
|
||||||
|
|
@ -9790,6 +9831,8 @@ alpha_canonicalize_comparison (int *code, rtx *op0, rtx *op1,
|
||||||
#define TARGET_EXPAND_BUILTIN alpha_expand_builtin
|
#define TARGET_EXPAND_BUILTIN alpha_expand_builtin
|
||||||
#undef TARGET_FOLD_BUILTIN
|
#undef TARGET_FOLD_BUILTIN
|
||||||
#define TARGET_FOLD_BUILTIN alpha_fold_builtin
|
#define TARGET_FOLD_BUILTIN alpha_fold_builtin
|
||||||
|
#undef TARGET_GIMPLE_FOLD_BUILTIN
|
||||||
|
#define TARGET_GIMPLE_FOLD_BUILTIN alpha_gimple_fold_builtin
|
||||||
|
|
||||||
#undef TARGET_FUNCTION_OK_FOR_SIBCALL
|
#undef TARGET_FUNCTION_OK_FOR_SIBCALL
|
||||||
#define TARGET_FUNCTION_OK_FOR_SIBCALL alpha_function_ok_for_sibcall
|
#define TARGET_FUNCTION_OK_FOR_SIBCALL alpha_function_ok_for_sibcall
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue