-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathtodo.txt
61 lines (30 loc) · 2.11 KB
/
todo.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
TODO: Add Neon (ARM64) instruction for dot product in DotProductBuiltInFunc::emitLLVMCode().
TODO: add min and max functions for scalar types.
TODO: Finish defining == and != operators for all types, including varry types.
TODO: move constructor, get elem creation etc.. from LangParser to VirtualMachine, like compare_equal creation.
// Test equality comparison
testMainFloat("def eq(Complex a, Complex b) !noinline bool : a == b \n\
struct Complex { float re, float im } \n\
def main() float : (Complex(1.0, 2.0) == Complex(1.0, 3.0)) ? 1.0 : 2.0",
2.0f);
hits assert (note that struct Complex is defined after usage)
TODO: Does engine_builder.setOptLevel(llvm::CodeGenOpt::Aggressive); do anything?
TODO: test exp2 usage with old VS builds.
TODO integer divison in Winter should use //
TODO: Make a new AST Node for lambda expression, instead of just using a FunctionDefinition AST node.
TODO: can remove UpdateUpRefs pass now?
Test capturing of destructured lets
checkSubstituteVariable probly has bugs.
remove payload.func_def_stack, replace with stack?
TODO: replace all (most?) set usage with unordered_set.
TODO: problem with inlining and then OpenCL output - variables may clash. Need to rename all variables when inlining a function?
TODO: for tests that involve passing stuff to functions, need some kind of noinline attribute? e.g. Test Refcounting optimisations: test that a argument variable used as a function argument is not incremented and decremented
TODO: make LetNodeVar an ast node?
TODO: check typechecking for function expressions with runtime get_func_expr's.
TODO: need i32 -> i64 coercion
TODO: need some way of making e.g. varrays with no elements. Can't have a literal with no elements because then we don't know the type.
TODO: fold specialisation requires that each fold built-in be unique.
TODO: Fix stuff up for new variable bit width integer type - proofs etc..
TODO: add tests for update()
TODO: type checking for fold(), iterate() args etc..
TODO: operator overloading doesn't work in template bodies.