[Bug c++/59813] tail-call elimination didn't fire for left-shift of char to cout
clyon at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu May 9 12:50:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59813
Christophe Lyon <clyon at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |clyon at gcc dot gnu.org
--- Comment #9 from Christophe Lyon <clyon at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #8)
> Author: jakub
> Date: Wed May 8 17:06:46 2019
> New Revision: 271013
>
> URL: https://gcc.gnu.org/viewcvs?rev=271013&root=gcc&view=rev
> Log:
> PR c++/59813
> PR tree-optimization/89060
> * tree-ssa-live.h (live_vars_map): New typedef.
> (compute_live_vars, live_vars_at_stmt, destroy_live_vars): Declare.
> * tree-ssa-live.c: Include gimple-walk.h and cfganal.h.
> (struct compute_live_vars_data): New type.
> (compute_live_vars_visit, compute_live_vars_1, compute_live_vars,
> live_vars_at_stmt, destroy_live_vars): New functions.
> * tree-tailcall.c: Include tree-ssa-live.h.
> (live_vars, live_vars_vec): New global variables.
> (find_tail_calls): Perform variable life analysis before punting.
> (tree_optimize_tail_calls_1): Clean up live_vars and live_vars_vec.
> * tree-inline.h (struct copy_body_data): Add eh_landing_pad_dest
> member.
> * tree-inline.c (add_clobbers_to_eh_landing_pad): Remove BB argument.
> Perform variable life analysis to select variables that really need
> clobbers added.
> (copy_edges_for_bb): Don't call add_clobbers_to_eh_landing_pad here,
> instead set id->eh_landing_pad_dest and assert it is the same.
> (copy_cfg_body): Call it here if id->eh_landing_pad_dest is non-NULL.
>
> * gcc.dg/tree-ssa/pr89060.c: New test.
>
> Added:
> trunk/gcc/testsuite/gcc.dg/tree-ssa/pr89060.c
> Modified:
> trunk/gcc/ChangeLog
> trunk/gcc/testsuite/ChangeLog
> trunk/gcc/tree-inline.c
> trunk/gcc/tree-inline.h
> trunk/gcc/tree-ssa-live.c
> trunk/gcc/tree-ssa-live.h
> trunk/gcc/tree-tailcall.c
This patch introduced regressions in libstdc++ on aarch64, I'm now seeing these
failures:
18_support/exception_ptr/lifespan.cc execution test
18_support/nested_exception/throw_with_nested.cc execution test
18_support/uncaught_exception/14026.cc execution test
20_util/specialized_algorithms/memory_management_tools/1.cc execution test
20_util/unsynchronized_pool_resource/allocate.cc execution test
20_util/variant/exception_safety.cc execution test
20_util/variant/run.cc execution test
21_strings/basic_string/cons/char/69092.cc execution test
22_locale/locale/cons/12438.cc execution test
22_locale/numpunct/members/pod/2.cc execution test
23_containers/deque/cons/2.cc execution test
23_containers/deque/requirements/exception/basic.cc execution test
23_containers/deque/requirements/exception/propagation_consistent.cc
execution test
23_containers/forward_list/requirements/exception/basic.cc execution test
23_containers/forward_list/requirements/exception/propagation_consistent.cc
execution test
23_containers/list/operations/78389.cc execution test
23_containers/list/requirements/exception/basic.cc execution test
23_containers/list/requirements/exception/propagation_consistent.cc
execution test
23_containers/map/requirements/exception/basic.cc execution test
23_containers/map/requirements/exception/propagation_consistent.cc
execution test
23_containers/multimap/requirements/exception/basic.cc execution test
23_containers/multimap/requirements/exception/propagation_consistent.cc
execution test
23_containers/multiset/requirements/exception/basic.cc execution test
23_containers/multiset/requirements/exception/propagation_consistent.cc
execution test
23_containers/set/requirements/exception/basic.cc execution test
23_containers/set/requirements/exception/propagation_consistent.cc
execution test
23_containers/unordered_map/requirements/exception/basic.cc execution test
23_containers/unordered_map/requirements/exception/propagation_consistent.cc
execution test
23_containers/unordered_multimap/requirements/exception/basic.cc execution
test
23_containers/unordered_multimap/requirements/exception/propagation_consistent.cc
execution test
23_containers/unordered_multiset/insert/hash_policy.cc execution test
23_containers/unordered_multiset/requirements/exception/basic.cc execution
test
23_containers/unordered_multiset/requirements/exception/propagation_consistent.cc
execution test
23_containers/unordered_set/insert/hash_policy.cc execution test
23_containers/unordered_set/max_load_factor/robustness.cc execution test
23_containers/unordered_set/requirements/exception/basic.cc execution test
23_containers/unordered_set/requirements/exception/propagation_consistent.cc
execution test
23_containers/vector/capacity/2.cc execution test
23_containers/vector/capacity/resize/strong_guarantee.cc execution test
23_containers/vector/cons/4.cc execution test
23_containers/vector/cons/86292.cc execution test
23_containers/vector/modifiers/push_back/strong_guarantee.cc execution test
23_containers/vector/requirements/exception/basic.cc execution test
23_containers/vector/requirements/exception/propagation_consistent.cc
execution test
25_algorithms/stable_partition/mem_check.cc execution test
25_algorithms/stable_sort/mem_check.cc execution test
27_io/basic_filebuf/close/81256.cc execution test
27_io/basic_filebuf/cons/wchar_t/10132-1.cc execution test
27_io/basic_filebuf/overflow/char/13858.cc execution test
27_io/basic_filebuf/overflow/wchar_t/13858.cc execution test
27_io/basic_filebuf/seekoff/wchar_t/3.cc execution test
27_io/basic_filebuf/seekpos/wchar_t/1.cc execution test
27_io/basic_filebuf/sync/char/9182-1.cc execution test
27_io/basic_fstream/53984.cc execution test
27_io/basic_istream/exceptions/char/9561.cc execution test
27_io/basic_istream/exceptions/wchar_t/9561.cc execution test
27_io/basic_istream/extractors_arithmetic/char/exceptions_badbit_throw.cc
execution test
27_io/basic_istream/extractors_arithmetic/wchar_t/exceptions_badbit_throw.cc
execution test
27_io/basic_istream/extractors_other/char/exceptions_failbit_throw.cc
execution test
27_io/basic_istream/extractors_other/wchar_t/exceptions_failbit_throw.cc
execution test
27_io/basic_istream/seekg/char/exceptions_badbit_throw.cc execution test
27_io/basic_istream/seekg/wchar_t/exceptions_badbit_throw.cc execution test
27_io/basic_istream/tellg/char/exceptions_badbit_throw.cc execution test
27_io/basic_istream/tellg/wchar_t/exceptions_badbit_throw.cc execution test
27_io/basic_ostream/exceptions/char/9561.cc execution test
27_io/basic_ostream/exceptions/wchar_t/9561.cc execution test
27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc execution test
27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc execution test
27_io/basic_ostream/inserters_arithmetic/char/9555-oa.cc execution test
27_io/basic_ostream/inserters_arithmetic/char/exceptions_badbit_throw.cc
execution test
27_io/basic_ostream/inserters_arithmetic/wchar_t/9555-oa.cc execution test
27_io/basic_ostream/inserters_arithmetic/wchar_t/exceptions_badbit_throw.cc
execution test
27_io/basic_ostream/inserters_character/char/9555-oc.cc execution test
27_io/basic_ostream/inserters_character/wchar_t/9555-oc.cc execution test
27_io/basic_ostream/inserters_other/char/exceptions_failbit_throw.cc
execution test
27_io/basic_ostream/inserters_other/wchar_t/exceptions_failbit_throw.cc
execution test
27_io/basic_ostream/put/char/1.cc execution test
27_io/basic_ostream/put/wchar_t/1.cc execution test
27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc execution test
27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc execution test
27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc execution test
27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc execution test
27_io/basic_ostream/write/char/1.cc execution test
27_io/basic_ostream/write/wchar_t/1.cc execution test
27_io/ios_base/failure/dual_abi.cc execution test
30_threads/async/except.cc execution test
ext/enc_filebuf/char/13189.cc execution test
ext/enc_filebuf/wchar_t/13189.cc execution test
ext/pb_ds/example/hash_illegal_resize.cc execution test
ext/vstring/requirements/exception/propagation_consistent.cc execution test
libstdc++-prettyprinters/cxx17.cc execution test
More information about the Gcc-bugs
mailing list