aboutsummaryrefslogtreecommitdiff
path: root/include/cps/StringHandler.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/cps/StringHandler.h')
-rw-r--r--include/cps/StringHandler.h42
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);
-};
-
-}