diff options
| author | Nicolai Haehnle <nhaehnle@gmail.com> | 2018-03-06 13:48:30 +0000 |
|---|---|---|
| committer | Nicolai Haehnle <nhaehnle@gmail.com> | 2018-03-06 13:48:30 +0000 |
| commit | 9a84a509130c1c6501655f89ce43b9e7d37a2bb4 (patch) | |
| tree | 16ebd621ef676ea6baff021fde0950b4d0a66e63 /llvm/test | |
| parent | 13080fd14e71fa4cf64bdd477ebc8ca01b9c856f (diff) | |
| download | bcm5719-llvm-9a84a509130c1c6501655f89ce43b9e7d37a2bb4.tar.gz bcm5719-llvm-9a84a509130c1c6501655f89ce43b9e7d37a2bb4.zip | |
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
Diffstat (limited to 'llvm/test')
| -rw-r--r-- | llvm/test/TableGen/UnsetBitInit.td | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/llvm/test/TableGen/UnsetBitInit.td b/llvm/test/TableGen/UnsetBitInit.td index d232293d787..694847358f6 100644 --- a/llvm/test/TableGen/UnsetBitInit.td +++ b/llvm/test/TableGen/UnsetBitInit.td @@ -1,5 +1,34 @@ -// RUN: llvm-tblgen %s +// 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; } |

