Quellcode durchsuchen

[spirv] The creator of a BB shouldn't know its result-id.

Ehsan Nasiri vor 6 Jahren
Ursprung
Commit
a49715de95

+ 1 - 1
tools/clang/include/clang/SPIRV/SpirvBasicBlock.h

@@ -24,7 +24,7 @@ class SpirvVisitor;
 /// The class representing a SPIR-V basic block in memory.
 class SpirvBasicBlock {
 public:
-  SpirvBasicBlock(uint32_t id, llvm::StringRef name);
+  SpirvBasicBlock(llvm::StringRef name);
   ~SpirvBasicBlock() = default;
 
   // Forbid copy construction and assignment

+ 2 - 2
tools/clang/lib/SPIRV/SpirvBasicBlock.cpp

@@ -13,8 +13,8 @@
 namespace clang {
 namespace spirv {
 
-SpirvBasicBlock::SpirvBasicBlock(uint32_t id, llvm::StringRef name)
-    : labelId(id), labelName(name), mergeTarget(nullptr),
+SpirvBasicBlock::SpirvBasicBlock(llvm::StringRef name)
+    : labelId(0), labelName(name), mergeTarget(nullptr),
       continueTarget(nullptr) {}
 
 bool SpirvBasicBlock::hasTerminator() const {

+ 1 - 1
tools/clang/lib/SPIRV/SpirvBuilder.cpp

@@ -85,7 +85,7 @@ void SpirvBuilder::endFunction() {
 
 SpirvBasicBlock *SpirvBuilder::createBasicBlock(llvm::StringRef name) {
   assert(function && "found detached basic block");
-  auto *bb = new (context) SpirvBasicBlock(/*id*/ 0, name);
+  auto *bb = new (context) SpirvBasicBlock(name);
   basicBlocks.push_back(bb);
   return bb;
 }

+ 15 - 15
tools/clang/unittests/SPIRV/SpirvBasicBlockTest.cpp

@@ -17,34 +17,34 @@ using namespace clang::spirv;
 namespace {
 
 TEST(SpirvBasicBlockTest, CheckName) {
-  SpirvBasicBlock bb(0, "myBasicBlock");
+  SpirvBasicBlock bb("myBasicBlock");
   EXPECT_EQ(bb.getName(), "myBasicBlock");
 }
 
 TEST(SpirvBasicBlockTest, CheckResultId) {
-  SpirvBasicBlock bb(0, "myBasicBlock");
+  SpirvBasicBlock bb("myBasicBlock");
   bb.setResultId(5);
   EXPECT_EQ(bb.getResultId(), 5);
 }
 
 TEST(SpirvBasicBlockTest, CheckMergeTarget) {
-  SpirvBasicBlock bb1(0, "bb1");
-  SpirvBasicBlock bb2(0, "bb2");
+  SpirvBasicBlock bb1("bb1");
+  SpirvBasicBlock bb2("bb2");
   bb1.setMergeTarget(&bb2);
   EXPECT_EQ(bb1.getMergeTarget(), &bb2);
 }
 
 TEST(SpirvBasicBlockTest, CheckContinueTarget) {
-  SpirvBasicBlock bb1(0, "bb1");
-  SpirvBasicBlock bb2(0, "bb2");
+  SpirvBasicBlock bb1("bb1");
+  SpirvBasicBlock bb2("bb2");
   bb1.setContinueTarget(&bb2);
   EXPECT_EQ(bb1.getContinueTarget(), &bb2);
 }
 
 TEST(SpirvBasicBlockTest, CheckSuccessors) {
-  SpirvBasicBlock bb1(0, "bb1");
-  SpirvBasicBlock bb2(0, "bb2");
-  SpirvBasicBlock bb3(0, "bb3");
+  SpirvBasicBlock bb1("bb1");
+  SpirvBasicBlock bb2("bb2");
+  SpirvBasicBlock bb3("bb3");
   bb1.addSuccessor(&bb2);
   bb1.addSuccessor(&bb3);
   auto successors = bb1.getSuccessors();
@@ -53,42 +53,42 @@ TEST(SpirvBasicBlockTest, CheckSuccessors) {
 }
 
 TEST(SpirvBasicBlockTest, CheckTerminatedByKill) {
-  SpirvBasicBlock bb(0, "bb");
+  SpirvBasicBlock bb("bb");
   SpirvKill kill({});
   bb.addInstruction(&kill);
   EXPECT_TRUE(bb.hasTerminator());
 }
 
 TEST(SpirvBasicBlockTest, CheckTerminatedByBranch) {
-  SpirvBasicBlock bb(0, "bb");
+  SpirvBasicBlock bb("bb");
   SpirvBranch branch({}, nullptr);
   bb.addInstruction(&branch);
   EXPECT_TRUE(bb.hasTerminator());
 }
 
 TEST(SpirvBasicBlockTest, CheckTerminatedByBranchConditional) {
-  SpirvBasicBlock bb(0, "bb");
+  SpirvBasicBlock bb("bb");
   SpirvBranchConditional branch({}, nullptr, nullptr, nullptr);
   bb.addInstruction(&branch);
   EXPECT_TRUE(bb.hasTerminator());
 }
 
 TEST(SpirvBasicBlockTest, CheckTerminatedByReturn) {
-  SpirvBasicBlock bb(0, "bb");
+  SpirvBasicBlock bb("bb");
   SpirvReturn returnInstr({});
   bb.addInstruction(&returnInstr);
   EXPECT_TRUE(bb.hasTerminator());
 }
 
 TEST(SpirvBasicBlockTest, CheckTerminatedByUnreachable) {
-  SpirvBasicBlock bb(0, "bb");
+  SpirvBasicBlock bb("bb");
   SpirvUnreachable unreachable({});
   bb.addInstruction(&unreachable);
   EXPECT_TRUE(bb.hasTerminator());
 }
 
 TEST(SpirvBasicBlockTest, CheckNotTerminated) {
-  SpirvBasicBlock bb(0, "bb");
+  SpirvBasicBlock bb("bb");
   SpirvLoad load({}, 0, {}, nullptr);
   bb.addInstruction(&load);
   EXPECT_FALSE(bb.hasTerminator());