但是,在Windows上使用外部llvm自定义传递是不可能的?
我可以构建' mypass.dll'在Windows上使用LLVM库。并且,我使用这两种方式来使用我的传球。
$this->find()
->where("user_id IN(1,5,8) AND (status = 1 OR verified = 1) OR (social_account = 1 AND enable_social = 1)")
->all();
但是,Clang和opt并没有很好地完成我的传球。
这意味着,我的传递可以在编译时转储llvm :: Module。我的传递可以在Linux上转储它。但是,我的通行证并没有在Windows上打印任何内容。
此外,我已经使用CMake在Windows上构建了LLVM和Clang。
为避免混淆,我正在编写源代码。
clang.exe -Xclang -load -Xclang mypass.dll -c test.c
opt.exe -load -Xclang mypass.dll -mypass test.bc -o optimized_test.bc
而且,这是我在Windows上的构建命令。
#include <iostream>
using namespace std;
#include <llvm/Pass.h>
#include <llvm/IR/Module.h>
using namespace llvm;
class SampleIRModule : public llvm::ModulePass {
public:
static char ID;
SampleIRModule() : llvm::ModulePass(ID) {}
bool runOnModule(llvm::Module &M);
};
bool SampleIRModule::runOnModule(llvm::Module &M) {
M.dump();
return false;
}
char SampleIRModule::ID = 0;
static RegisterPass<SampleIRModule> X("SampleIRModule", "SampleIRModule Pass");