|
@@ -20,22 +20,25 @@
|
|
|
using namespace llvm;
|
|
|
|
|
|
PreservedAnalyses BitcodeWriterPass::run(Module &M) {
|
|
|
- WriteBitcodeToFile(&M, OS, shouldPreserveBitcodeUseListOrder());
|
|
|
+ WriteBitcodeToFile(&M, OS, ShouldPreserveUseListOrder);
|
|
|
return PreservedAnalyses::all();
|
|
|
}
|
|
|
|
|
|
namespace {
|
|
|
class WriteBitcodePass : public ModulePass {
|
|
|
raw_ostream &OS; // raw_ostream to print on
|
|
|
+ bool ShouldPreserveUseListOrder;
|
|
|
+
|
|
|
public:
|
|
|
static char ID; // Pass identification, replacement for typeid
|
|
|
- explicit WriteBitcodePass(raw_ostream &o)
|
|
|
- : ModulePass(ID), OS(o) {}
|
|
|
+ explicit WriteBitcodePass(raw_ostream &o, bool ShouldPreserveUseListOrder)
|
|
|
+ : ModulePass(ID), OS(o),
|
|
|
+ ShouldPreserveUseListOrder(ShouldPreserveUseListOrder) {}
|
|
|
|
|
|
const char *getPassName() const override { return "Bitcode Writer"; }
|
|
|
|
|
|
bool runOnModule(Module &M) override {
|
|
|
- WriteBitcodeToFile(&M, OS, shouldPreserveBitcodeUseListOrder());
|
|
|
+ WriteBitcodeToFile(&M, OS, ShouldPreserveUseListOrder);
|
|
|
return false;
|
|
|
}
|
|
|
};
|
|
@@ -43,6 +46,7 @@ namespace {
|
|
|
|
|
|
char WriteBitcodePass::ID = 0;
|
|
|
|
|
|
-ModulePass *llvm::createBitcodeWriterPass(raw_ostream &Str) {
|
|
|
- return new WriteBitcodePass(Str);
|
|
|
+ModulePass *llvm::createBitcodeWriterPass(raw_ostream &Str,
|
|
|
+ bool ShouldPreserveUseListOrder) {
|
|
|
+ return new WriteBitcodePass(Str, ShouldPreserveUseListOrder);
|
|
|
}
|