[Thumb-1] Fix corner cases for compressed jump tables
authorWeiming Zhao <weimingz@codeaurora.org>
Thu, 20 Apr 2017 18:37:14 +0000 (18:37 +0000)
committerWeiming Zhao <weimingz@codeaurora.org>
Thu, 20 Apr 2017 18:37:14 +0000 (18:37 +0000)
commit962c5a3aec056a74facf2a4fb8766d071e33aaf3
tree07c26e5a50a38c671ebcd80306a9a43bcf404279
parentb965121ba864608f121690451e8ce380afd12f7e
[Thumb-1] Fix corner cases for compressed jump tables

Summary:
When synthesized TBB/TBH is expanded, we need to avoid the case of:
   BaseReg is redefined after the load of branching target. E.g.:

    %R2 = tLEApcrelJT <jt#1>
    %R1 =  tLDRr %R1, %R2    ==> %R2 = tLEApcrelJT <jt#1>
    %R2 = tLDRspi %SP, 12        %R2 = tLDRspi %SP, 12
    tBR_JTr %R1                  tTBB_JT %R2, %R1
`
Reviewers: jmolloy

Reviewed By: jmolloy

Subscribers: llvm-commits, rengolin

Differential Revision: https://reviews.llvm.org/D32250

llvm-svn: 300870
llvm/lib/Target/ARM/ARMConstantIslandPass.cpp