2022-01-12 00:01:42 +08:00
|
|
|
#include "performance.h"
|
|
|
|
#include "llvm/ADT/Statistic.h"
|
|
|
|
#include "llvm/ADT/StringRef.h"
|
|
|
|
#include "llvm/ADT/Triple.h"
|
|
|
|
#include "llvm/Analysis/LoopInfo.h"
|
|
|
|
#include "llvm/Analysis/LoopPass.h"
|
|
|
|
#include "llvm/Analysis/PostDominators.h"
|
|
|
|
#include "llvm/Analysis/TargetLibraryInfo.h"
|
|
|
|
#include "llvm/Analysis/TargetTransformInfo.h"
|
|
|
|
#include "llvm/CodeGen/MachineModuleInfo.h"
|
|
|
|
#include "llvm/IR/CFG.h"
|
|
|
|
#include "llvm/IR/DataLayout.h"
|
|
|
|
#include "llvm/IR/Function.h"
|
|
|
|
#include "llvm/IR/GlobalValue.h"
|
|
|
|
#include "llvm/IR/IRBuilder.h"
|
|
|
|
#include "llvm/IR/InlineAsm.h"
|
|
|
|
#include "llvm/IR/Instructions.h"
|
|
|
|
#include "llvm/IR/LLVMContext.h"
|
|
|
|
#include "llvm/IR/LegacyPassManager.h"
|
|
|
|
#include "llvm/IR/Module.h"
|
|
|
|
#include "llvm/IR/ValueSymbolTable.h"
|
|
|
|
#include "llvm/InitializePasses.h"
|
2022-06-18 10:20:13 +08:00
|
|
|
#include "llvm/MC/TargetRegistry.h"
|
2022-01-12 00:01:42 +08:00
|
|
|
#include "llvm/PassInfo.h"
|
|
|
|
#include "llvm/PassRegistry.h"
|
|
|
|
#include "llvm/Support/CommandLine.h"
|
2022-06-18 10:20:13 +08:00
|
|
|
#include "llvm/Support/Host.h"
|
2022-01-12 00:01:42 +08:00
|
|
|
#include "llvm/Target/TargetMachine.h"
|
|
|
|
#include "llvm/Target/TargetOptions.h"
|
|
|
|
#include "llvm/Transforms/IPO/PassManagerBuilder.h"
|
|
|
|
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
|
|
|
|
#include "llvm/Transforms/Utils/Cloning.h"
|
|
|
|
#include "llvm/Transforms/Utils/ValueMapper.h"
|
|
|
|
#include <map>
|
|
|
|
#include <set>
|
|
|
|
#include <sstream>
|
|
|
|
#include <tuple>
|
|
|
|
#include <vector>
|
|
|
|
|
|
|
|
using namespace llvm;
|
|
|
|
|
|
|
|
void performance_optimization(llvm::Module *M) {
|
|
|
|
for (auto F = M->begin(); F != M->end(); F++) {
|
|
|
|
for (auto I = F->arg_begin(); I != F->arg_end(); ++I) {
|
|
|
|
if (I->getType()->isPointerTy()) {
|
|
|
|
I->addAttr(llvm::Attribute::NoAlias);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2022-06-26 03:22:50 +08:00
|
|
|
return;
|
2022-01-12 00:01:42 +08:00
|
|
|
}
|