From 5a0a2e648c267d99111b21482ca709f580e9ccc2 Mon Sep 17 00:00:00 2001 From: Peter Collingbourne Date: Tue, 29 Nov 2016 20:43:47 +0000 Subject: Bitcode: Introduce BitcodeWriter interface. This interface allows clients to write multiple modules to a single bitcode file. Also introduce the llvm-cat utility which can be used to create a bitcode file containing multiple modules. Differential Revision: https://reviews.llvm.org/D26179 llvm-svn: 288195 --- llvm/test/Bitcode/Inputs/multi-module.ll | 3 +++ llvm/test/Bitcode/multi-module.ll | 39 ++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 llvm/test/Bitcode/Inputs/multi-module.ll create mode 100644 llvm/test/Bitcode/multi-module.ll (limited to 'llvm/test/Bitcode') diff --git a/llvm/test/Bitcode/Inputs/multi-module.ll b/llvm/test/Bitcode/Inputs/multi-module.ll new file mode 100644 index 00000000000..e4e9b82be64 --- /dev/null +++ b/llvm/test/Bitcode/Inputs/multi-module.ll @@ -0,0 +1,3 @@ +define void @f2() { + ret void +} diff --git a/llvm/test/Bitcode/multi-module.ll b/llvm/test/Bitcode/multi-module.ll new file mode 100644 index 00000000000..a6c25c7cdbe --- /dev/null +++ b/llvm/test/Bitcode/multi-module.ll @@ -0,0 +1,39 @@ +; RUN: llvm-cat -o %t %s %S/Inputs/multi-module.ll +; RUN: not llvm-dis -o - %t 2>&1 | FileCheck --check-prefix=ERROR %s +; ERROR: Expected a single module + +; FIXME: Introduce a tool for extracting modules from bitcode and use it here. +; For now we can at least check that the bitcode contains multiple modules. +; RUN: llvm-bcanalyzer -dump %t | FileCheck --check-prefix=BCA %s + +; RUN: llvm-as -o %t1 %s +; RUN: llvm-as -o %t2 %S/Inputs/multi-module.ll +; RUN: llvm-cat -o %t %t1 %t2 +; RUN: not llvm-dis -o - %t 2>&1 | FileCheck --check-prefix=ERROR %s +; RUN: llvm-bcanalyzer -dump %t | FileCheck --check-prefix=BCA %s + +; RUN: llvm-cat -b -o %t %t1 %t2 +; RUN: not llvm-dis -o - %t 2>&1 | FileCheck --check-prefix=ERROR %s +; RUN: llvm-bcanalyzer -dump %t | FileCheck --check-prefix=BCA %s + +; RUN: llvm-cat -b -o %t3 %t %t +; RUN: not llvm-dis -o - %t3 2>&1 | FileCheck --check-prefix=ERROR %s +; RUN: llvm-bcanalyzer -dump %t3 | FileCheck --check-prefix=BCA4 %s + +; BCA: