This is the mail archive of the gcc-patches@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]

Re: PATCH to expand_builtin_setjmp_receiver for middle-end/28493


Jason Merrill wrote:
The problem in 28493 turned out to be that we had

  (set virtual-stack-vars hard-frame-pointer)
  ...
  (compare virtual-stack-vars ptr)

devirtualization turned this into

  (set soft-frame-pointer (minus hard-frame-pointer 8))
  ...
  (set tmp (plus soft-frame-pointer 8))
  (compare tmp ptr)

[...]

and things break. Fixed by forcing a clobber of the hard frame pointer so that the soft/hard duality doesn't confuse CSE.


With much handwaving, I wonder if the clobber of the hard frame pointer shouldn't be emitted by devirtualization whenever it sets the soft frame pointer.

Paolo


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