aboutsummaryrefslogtreecommitdiff
path: root/include/cps/ArrayHandler.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/cps/ArrayHandler.h')
-rw-r--r--include/cps/ArrayHandler.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/cps/ArrayHandler.h b/include/cps/ArrayHandler.h
index f15004f..6f563b7 100644
--- a/include/cps/ArrayHandler.h
+++ b/include/cps/ArrayHandler.h
@@ -42,6 +42,13 @@ class ArrayHandler {
llvm::Value *getArrayBasePointer(const std::string &Name);
llvm::Value *getElementPointer(const std::string &Name, llvm::Value *Offset);
const ArrayMetadata *getMetadata(const std::string &Name) const;
+ bool emitCheckedIndices(const std::string &Name,
+ const std::vector<std::unique_ptr<ExprAST>> &IndexExprs,
+ int Line,
+ bool RequireExact,
+ CodeGen &CG,
+ std::vector<llvm::Value*> &Out);
+ llvm::Value *loadElement(const std::string &Name, llvm::Value *Offset, CodeGen &CG);
void emitPrintLoop(const std::string &Name,
int CurrentDim,
std::vector<llvm::Value*> CurrentIndices,