- User Since
- Jul 3 2019, 10:12 AM (92 w, 5 d)
Mar 3 2021
The patches implementing more features/control flow constructs have not yet been committed, so if the pre-existing test passes, the functionality should be fine. Adjustments can be made later on when those patches are rebased.
Feb 17 2021
CodePtr points into the bytecode emitted by the byte code compiler. In some instances, pointers to auxiliary data structures are embedded into the byte code, such as functions or AST nodes which contain information relevant to the execution of the instruction.
Dec 22 2020
Dec 21 2020
Dec 10 2020
fixed test and added below/above threshold cases
updated the minimum number of jump table entries
Nov 28 2020
Is there anything I could do to test the impact on code size? As I mentioned previously, in my setting I cannot easily turn the use of jump tables off. Are there any binaries that are relatively easy to cross compile and are of interest?
Nov 26 2020
applied the changes on the correct checkout of the llvm repository this time...
moved logic into addDisp
consistent run lines
Expanded test to cover 32-bit/64-bit variants with small and medium code models
Nov 25 2020
May 4 2020
Apr 22 2020
Apr 15 2020
Apr 9 2020
Thanks for the comments! I tried to clarify what could be done in the future and what is already supported.
addressed comments, fixed typos
Mar 12 2020
Wrapped to ~80 chars/line
Mar 6 2020
Feb 21 2020
Was wondering if `InterpBlock``` might be a more suitable name?
Jan 3 2020
Dec 20 2019
Dec 13 2019
Dec 6 2019
Dec 2 2019
Nov 27 2019
Nov 24 2019
Nov 22 2019
Nov 11 2019
removed unnecessary braces
Oct 1 2019
Sep 20 2019
Sep 13 2019
Sep 12 2019
Added a FIXME to reflect the intention to move the interpreter to its own library
Thanks for looking into the problem - sorry for the delay!
Sep 11 2019
reset accidentally changed tests
Sep 10 2019
removed declarations with no definitions
Totally missed that - thanks for noticing. I must have forgotten to remove stuff from the header since clang/gcc don't warn about it.
I'll get hold of a Windows machine soon-ish and I'll make sure to fix this problem.
Sep 9 2019
I am providing definitions in the C++ file - the problem is that they are not available in the header before the extern declaration. The methods are available at the site of the extern definition.
gcc and clang accept this, so does Visual Studio 2019. This feels like an incorrect implementation of extern templates in Visual Studio?
Sep 4 2019
@jfb suggested I add @rnk: I was wondering if you have any suggestions on how to fix the msvc warnings/errors? I'd be grateful if I had some feedback on what features of C++ I should avoid using and what I should replace them with.
The existing evaluator is not a separate library to start with. Given the tangling between ExprConstants.cpp and the AST nodes, I don't really see any elegant way of dealing with this problem.
Does anyone have any suggestions on how to fix the MSVC problems? I am trying to get access to a Windows machine, but it's not guaranteed.
Merged clangInterp and clangAST into a single library while keeping Interp in a separate folder.
This is required since clangInterp needs access to the AST, but the intry points to the interpreter
are also in AST.
Thanks for identifying these issues - I fixed the cycle detected by modules since then, however I wasn't aware of the issue with shared libs until now.
Sep 3 2019
Sep 2 2019
Aug 31 2019
Aug 30 2019
Added more features
Aug 29 2019
Aug 27 2019
replaced llvm::make_unique with std::make_unique
refactoring + implemented changes
Aug 13 2019
The old path-based approach is slow for most operations, while the new pointer-based approach is fast for the most common ones.
For read/write/update operations, it is enough to check the pointer and at most a single descriptor to ensure whether the operation
can be performed. For some operations, such as some pointer comparisons, in the worst case the old-style path can be reproduced by
following the pointers produced through the getBase method, allowing us to implement everything.
updated diff, implemented requested changes
Implemented @zygoloid's suggestions