aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-array.c
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@linaro.org>2018-03-01 08:22:06 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2018-03-01 08:22:06 +0000
commite6eacdc9451bbee54c80d6b85d22ba390fd2c7c4 (patch)
tree351106ed56d48df57047be4534967c2e4d1300b3 /gcc/fortran/trans-array.c
parent54178a01107b911813609693dd8d91968ac06819 (diff)
downloadgcc-e6eacdc9451bbee54c80d6b85d22ba390fd2c7c4.zip
gcc-e6eacdc9451bbee54c80d6b85d22ba390fd2c7c4.tar.gz
gcc-e6eacdc9451bbee54c80d6b85d22ba390fd2c7c4.tar.bz2
Tighten use of HARD_FRAME_POINTER_REGNUM in alias.c (PR 84538)
RTL code needs to be consistent about whether it uses the stack pointer, the frame pointer or the argument pointer to access a given part of the frame. alias.c used this to divide accesses into three independent areas. The problem in the PR is that we did this for HARD_FRAME_POINTER_REGNUM even when the register wasn't being used as a frame pointer. We can't do that because the frame pointer is then just any old allocatable register and could certainly point to info accessed through the argument pointer or stack pointer. 2018-03-01 Richard Sandiford <richard.sandiford@linaro.org> gcc/ PR rtl-optimization/84538 * alias.c (init_alias_target): Add commentary. (init_alias_analysis): Only give HARD_FRAME_POINTER_REGNUM a unique base value if the frame pointer is not eliminated to the stack pointer. gcc/testsuite/ PR rtl-optimization/84538 * gcc.dg/torture/pr84538.c: New test. From-SVN: r258094
Diffstat (limited to 'gcc/fortran/trans-array.c')
0 files changed, 0 insertions, 0 deletions