This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug inline-asm/70184] Explicit register variables holding function arguments overwritten by conversion libcall


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70184

--- Comment #8 from ktkachov at gcc dot gnu.org ---
Author: ktkachov
Date: Thu Nov 24 15:22:34 2016
New Revision: 242840

URL: https://gcc.gnu.org/viewcvs?rev=242840&root=gcc&view=rev
Log:
[TER] PR target/48863 : Don't replace expressions across local register
variable definitions

        PR target/48863
        PR inline-asm/70184
        * tree-ssa-ter.c (temp_expr_table): Add reg_vars_cnt field.
        (new_temp_expr_table): Initialise reg_vars_cnt.
        (free_temp_expr_table): Release reg_vars_cnt.
        (process_replaceable): Add reg_vars_cnt argument, set reg_vars_cnt
        field of TAB.
        (find_replaceable_in_bb): Use the above to record register variable
        write occurrences and cancel replacement across them.

        * gcc.target/arm/pr48863.c: New test.


Added:
    trunk/gcc/testsuite/gcc.target/arm/pr48863.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree-ssa-ter.c

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]