aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/cps/FileHandler.h4
-rw-r--r--include/cps/StringHandler.h2
2 files changed, 4 insertions, 2 deletions
diff --git a/include/cps/FileHandler.h b/include/cps/FileHandler.h
index aaad6a0..3898a57 100644
--- a/include/cps/FileHandler.h
+++ b/include/cps/FileHandler.h
@@ -11,8 +11,8 @@ class RuntimeCheck;
// Emits the text-file runtime: a fixed-size open-file table plus internal
// __cps_file_* helper functions, synthesized once on first use so programs
// without file statements keep their IR unchanged. The table is keyed by
-// filename *content* (strcmp) — pseudocode STRING equality is pointer
-// identity, so the same file may be named by many different buffers.
+// filename *content* (strcmp), so the same file may be named by many
+// different buffers.
// Leaf module: methods only take and return llvm::Value*s; expression
// evaluation, type coercion and the symbol table stay in CodeGen.
class FileHandler {
diff --git a/include/cps/StringHandler.h b/include/cps/StringHandler.h
index e9a8752..0b2447c 100644
--- a/include/cps/StringHandler.h
+++ b/include/cps/StringHandler.h
@@ -16,6 +16,7 @@ class StringHandler {
llvm::FunctionCallee MemCpyFunc;
llvm::FunctionCallee StrCpyFunc;
llvm::FunctionCallee StrCatFunc;
+ llvm::FunctionCallee StrCmpFunc;
llvm::FunctionCallee ToUpperFunc;
llvm::FunctionCallee ToLowerFunc;
@@ -30,6 +31,7 @@ public:
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);