#include "Hexagon.h"
#include "llvm/CodeGen/StackProtector.h"
#include "llvm/CodeGen/ValueTypes.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/IntrinsicsHexagon.h"
#include "llvm/Pass.h"
#include "llvm/Transforms/Scalar.h"
usingnamespacellvm;
namespace llvm {
FunctionPass *createHexagonOptimizeSZextends();
void initializeHexagonOptimizeSZextendsPass(PassRegistry&);
}
namespace {
struct HexagonOptimizeSZextends : public FunctionPass { … };
}
char HexagonOptimizeSZextends::ID = …;
INITIALIZE_PASS(…)
bool HexagonOptimizeSZextends::intrinsicAlreadySextended(Intrinsic::ID IntID) { … }
bool HexagonOptimizeSZextends::runOnFunction(Function &F) { … }
FunctionPass *llvm::createHexagonOptimizeSZextends() { … }