Skip to content
  • Jim Grosbach's avatar
    Fix PR6696 and PR6663 · 4dac8906
    Jim Grosbach authored
    When a frame pointer is not otherwise required, and dynamic stack alignment
    is necessary solely due to the spilling of a register with larger alignment
    requirements than the default stack alignment, the frame pointer can be both
    used as a general purpose register and a frame pointer. That goes poorly, for
    obvious reasons. This patch brings back a bit of old logic for identifying
    the use of such registers and conservatively reserves the frame pointer
    during register allocation in such cases.
    
    For now, implement for X86 only since it's 32-bit linux which is hitting this,
    and we want a targeted fix for 2.7. As a follow-on, this will be expanded
    to handle other targets, as theoretically the problem could arise elsewhere
    as well.
    
    llvm-svn: 100559
    4dac8906
Loading