If we have a VLA that has a "use" in a metadata node that's then used
authorBill Wendling <isanbard@gmail.com>
Fri, 30 Mar 2012 00:02:55 +0000 (00:02 +0000)
committerBill Wendling <isanbard@gmail.com>
Fri, 30 Mar 2012 00:02:55 +0000 (00:02 +0000)
commit84364a4e23e8ba2fe9332da99bcab31acc173381
tree51f4a451881791a48f3cf12db8aad5a34ec297dd
parentf9e894d21da87b92564acc07ee79091f32c71020
If we have a VLA that has a "use" in a metadata node that's then used
here but it has no other uses, then we have a problem. E.g.,

  int foo (const int *x) {
    char a[*x];
    return 0;
  }

If we assign 'a' a vreg and fast isel later on has to use the selection
DAG isel, it will want to copy the value to the vreg. However, there are
no uses, which goes counter to what selection DAG isel expects.
<rdar://problem/11134152>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153705 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/FastISel.cpp