diff options
Diffstat (limited to 'include/cps/StringHandler.h')
| -rw-r--r-- | include/cps/StringHandler.h | 42 |
1 files changed, 0 insertions, 42 deletions
diff --git a/include/cps/StringHandler.h b/include/cps/StringHandler.h deleted file mode 100644 index 0b2447c..0000000 --- a/include/cps/StringHandler.h +++ /dev/null @@ -1,42 +0,0 @@ -#pragma once -#include "llvm/IR/IRBuilder.h" -#include "llvm/IR/LLVMContext.h" -#include "llvm/IR/Module.h" -#include <string> - -namespace cps { - -class StringHandler { - llvm::LLVMContext &Context; - llvm::IRBuilder<> &Builder; - llvm::Module &Module; - - llvm::FunctionCallee MallocFunc; - llvm::FunctionCallee StrLenFunc; - llvm::FunctionCallee MemCpyFunc; - llvm::FunctionCallee StrCpyFunc; - llvm::FunctionCallee StrCatFunc; - llvm::FunctionCallee StrCmpFunc; - llvm::FunctionCallee ToUpperFunc; - llvm::FunctionCallee ToLowerFunc; - - llvm::Value *emitCaseConvert(llvm::Value *Str, llvm::FunctionCallee CaseFn); - llvm::Value *allocCopySubstring(llvm::Value *Src, llvm::Value *StartIdx, llvm::Value *Len); - -public: - StringHandler(llvm::LLVMContext &Ctx, llvm::IRBuilder<> &B, llvm::Module &M); - - void setupExternalFunctions(); - llvm::Value *createLiteral(const std::string &Val); - - llvm::Value *emitLength(llvm::Value *Str); - llvm::Value *emitConcat(llvm::Value *LHS, llvm::Value *RHS); - llvm::Value *emitCompare(int Op, llvm::Value *LHS, llvm::Value *RHS); - llvm::Value *emitMid(llvm::Value *Str, llvm::Value *Start, llvm::Value *Len); - llvm::Value *emitRight(llvm::Value *Str, llvm::Value *Len); - llvm::Value *emitLeft(llvm::Value *Str, llvm::Value *Len); - llvm::Value *emitLCase(llvm::Value *Str); - llvm::Value *emitUCase(llvm::Value *Str); -}; - -} |
