llvm-mirror/test/TableGen/UnsetBitInit.td
Nicolai Haehnle 5c17c02955 TableGen: Simplify BitsInit::resolveReferences
Summary:
No functional change intended. The removed code has a loop for
recursive resolving, which is superseded by the recursive
resolving done by the Resolver implementations.

Add a test case which was broken by an earlier version of this
change.

Change-Id: Ib208d037b77a8bbb725977f1388601fc984723d8

Reviewers: arsenm, craig.topper, tra, MartinO

Subscribers: wdng, llvm-commits

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

llvm-svn: 326784
2018-03-06 13:48:30 +00:00

41 lines
704 B
TableGen

// RUN: llvm-tblgen %s | FileCheck %s
// XFAIL: vg_leak
// CHECK: --- Defs ---
// Test that P and Q are not replaced by ?. TableGen's codegen emitter backend
// relies on keeping variable references like this around to describe the
// structure of instruction encodings.
//
// CHECK: def A {
// CHECK: bits<8> Inst = { 1, 1, 1, 1, 1, 1, P, Q };
// CHECK: bits<2> src = { ?, ? };
// CHECK: bit P = ?;
// CHECK: bit Q = ?;
// CHECK: }
def A {
bits<8> Inst;
bits<2> src;
bit P;
bit Q;
let Inst{7-2} = 0x3f;
let Inst{1} = P;
let Inst{0} = Q;
let P = src{1};
let Q = src{0};
}
class x {
field bits<32> A;
}
class y<bits<2> B> : x {
let A{21-20} = B;
}
def z : y<{0,?}>;