• mtrofin's avatar
    [turbofan] avoid xchg instruction on Intel · 7440edae
    mtrofin authored
    On Intel, xchg stalls the pipeline. We use xchg to implement swap
    moves. In a separate exploration, the presence of xchg in a very hot
    loop, due to a change in register allocation, lead to over 20% regression.
    
    Simply changing that instruction with push/mov/pop (almost) eliminated
    the regression.
    
    In light of that, I removed uses of xchg. This leads to more instructions,
    though. That is particularly problematic for long cycles, which, today,
    we translate to successions of swaps.
    
    I plan to address this cycle issue in a separate change. For now, the
    goal is to unblock the initial work that lead here.
    
    Review URL: https://codereview.chromium.org/1580233003
    
    Cr-Commit-Position: refs/heads/master@{#33282}
    7440edae
lithium-gap-resolver-ia32.cc 16.9 KB