diff options
-rw-r--r-- | llvm/test/Bitcode/operand-bundles-bc-analyzer.ll | 27 | ||||
-rw-r--r-- | llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp | 8 |
2 files changed, 35 insertions, 0 deletions
diff --git a/llvm/test/Bitcode/operand-bundles-bc-analyzer.ll b/llvm/test/Bitcode/operand-bundles-bc-analyzer.ll new file mode 100644 index 00000000000..8f7aa37cbed --- /dev/null +++ b/llvm/test/Bitcode/operand-bundles-bc-analyzer.ll @@ -0,0 +1,27 @@ +; RUN: llvm-as < %s | llvm-bcanalyzer -dump -disable-histogram | FileCheck %s + +; CHECK: <OPERAND_BUNDLE_TAGS_BLOCK +; CHECK-NEXT: <OPERAND_BUNDLE_TAG +; CHECK-NEXT: <OPERAND_BUNDLE_TAG +; CHECK-NEXT: <OPERAND_BUNDLE_TAG +; CHECK-NEXT: <OPERAND_BUNDLE_TAG +; CHECK-NEXT: <OPERAND_BUNDLE_TAG +; CHECK-NEXT: </OPERAND_BUNDLE_TAGS_BLOCK + +; CHECK: <FUNCTION_BLOCK +; CHECK: <OPERAND_BUNDLE +; CHECK: <OPERAND_BUNDLE +; CHECK-NOT: <OPERAND_BUNDLE +; CHECK: </FUNCTION_BLOCK + +; CHECK: Block ID #{{[0-9]+}} (OPERAND_BUNDLE_TAGS_BLOCK) + +declare void @callee0() + +define void @f0(i32* %ptr) { + entry: + %l = load i32, i32* %ptr + %x = add i32 42, 1 + call void @callee0() [ "foo"(i32 42, i64 100, i32 %x), "bar"(float 0.000000e+00, i64 100, i32 %l) ] + ret void +} diff --git a/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp b/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp index de0bf8ceda0..f30944661e9 100644 --- a/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp +++ b/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp @@ -105,6 +105,7 @@ static const char *GetBlockName(unsigned BlockID, switch (BlockID) { default: return nullptr; + case bitc::OPERAND_BUNDLE_TAGS_BLOCK_ID: return "OPERAND_BUNDLE_TAGS_BLOCK"; case bitc::MODULE_BLOCK_ID: return "MODULE_BLOCK"; case bitc::PARAMATTR_BLOCK_ID: return "PARAMATTR_BLOCK"; case bitc::PARAMATTR_GROUP_BLOCK_ID: return "PARAMATTR_GROUP_BLOCK_ID"; @@ -279,6 +280,7 @@ static const char *GetCodeName(unsigned CodeID, unsigned BlockID, STRINGIFY_CODE(FUNC_CODE, INST_CALL) STRINGIFY_CODE(FUNC_CODE, DEBUG_LOC) STRINGIFY_CODE(FUNC_CODE, INST_GEP) + STRINGIFY_CODE(FUNC_CODE, OPERAND_BUNDLE) } case bitc::VALUE_SYMTAB_BLOCK_ID: switch (CodeID) { @@ -364,6 +366,12 @@ static const char *GetCodeName(unsigned CodeID, unsigned BlockID, case bitc::USELIST_CODE_DEFAULT: return "USELIST_CODE_DEFAULT"; case bitc::USELIST_CODE_BB: return "USELIST_CODE_BB"; } + + case bitc::OPERAND_BUNDLE_TAGS_BLOCK_ID: + switch(CodeID) { + default: return nullptr; + case bitc::OPERAND_BUNDLE_TAG: return "OPERAND_BUNDLE_TAG"; + } } #undef STRINGIFY_CODE } |