Page MenuHomePhabricator
Feed Advanced Search

Fri, Sep 13

nand committed rG950b70dcc7e3: [Clang Interpreter] Initial patch for the constexpr interpreter (authored by nand).
[Clang Interpreter] Initial patch for the constexpr interpreter
Fri, Sep 13, 2:51 AM
nand committed rL371834: [Clang Interpreter] Initial patch for the constexpr interpreter.
[Clang Interpreter] Initial patch for the constexpr interpreter
Fri, Sep 13, 2:50 AM
nand closed D64146: [Clang Interpreter] Initial patch for the constexpr interpreter.
Fri, Sep 13, 2:50 AM · Restricted Project, Restricted Project

Thu, Sep 12

nand updated the diff for D64146: [Clang Interpreter] Initial patch for the constexpr interpreter.

Added a FIXME to reflect the intention to move the interpreter to its own library

Thu, Sep 12, 12:04 PM · Restricted Project, Restricted Project
nand added a comment to D64146: [Clang Interpreter] Initial patch for the constexpr interpreter.

Thanks for looking into the problem - sorry for the delay!

Thu, Sep 12, 4:11 AM · Restricted Project, Restricted Project

Wed, Sep 11

nand updated the diff for D64146: [Clang Interpreter] Initial patch for the constexpr interpreter.

reset accidentally changed tests

Wed, Sep 11, 1:25 PM · Restricted Project, Restricted Project
nand updated the diff for D64146: [Clang Interpreter] Initial patch for the constexpr interpreter.

rebase

Wed, Sep 11, 1:17 PM · Restricted Project, Restricted Project

Tue, Sep 10

nand updated the diff for D64146: [Clang Interpreter] Initial patch for the constexpr interpreter.

removed declarations with no definitions

Tue, Sep 10, 11:34 PM · Restricted Project, Restricted Project
nand added a comment to D64146: [Clang Interpreter] Initial patch for the constexpr interpreter.

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.
Thanks!

Tue, Sep 10, 10:55 AM · Restricted Project, Restricted Project

Mon, Sep 9

nand added a comment to D64146: [Clang Interpreter] Initial patch for the constexpr interpreter.

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?

Mon, Sep 9, 2:48 PM · Restricted Project, Restricted Project

Wed, Sep 4

nand added a reviewer for D64146: [Clang Interpreter] Initial patch for the constexpr interpreter: rnk.

@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.

Wed, Sep 4, 11:25 AM · Restricted Project, Restricted Project
nand added a comment to D64146: [Clang Interpreter] Initial patch for the constexpr interpreter.

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.

Wed, Sep 4, 6:58 AM · Restricted Project, Restricted Project
nand added a comment to D64146: [Clang Interpreter] Initial patch for the constexpr interpreter.

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.

Wed, Sep 4, 6:49 AM · Restricted Project, Restricted Project
nand updated the diff for D64146: [Clang Interpreter] Initial patch for the constexpr interpreter.

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.

Wed, Sep 4, 6:47 AM · Restricted Project, Restricted Project
nand reopened D64146: [Clang Interpreter] Initial patch for the constexpr interpreter.

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.

Wed, Sep 4, 4:13 AM · Restricted Project, Restricted Project

Tue, Sep 3

nand committed rG32f82c9cbaf3: [Clang Interpreter] Initial patch for the constexpr interpreter (authored by nand).
[Clang Interpreter] Initial patch for the constexpr interpreter
Tue, Sep 3, 10:50 PM
nand committed rL370839: [Clang Interpreter] Initial patch for the constexpr interpreter.
[Clang Interpreter] Initial patch for the constexpr interpreter
Tue, Sep 3, 10:50 PM

Mon, Sep 2

nand committed rGc3bdad8c1e14: Revert [Clang Interpreter] Initial patch for the constexpr interpreter (authored by nand).
Revert [Clang Interpreter] Initial patch for the constexpr interpreter
Mon, Sep 2, 4:35 AM
nand committed rL370642: Revert [Clang Interpreter] Initial patch for the constexpr interpreter.
Revert [Clang Interpreter] Initial patch for the constexpr interpreter
Mon, Sep 2, 4:35 AM
nand committed rG8327fed9475a: [Clang Interpreter] Initial patch for the constexpr interpreter (authored by nand).
[Clang Interpreter] Initial patch for the constexpr interpreter
Mon, Sep 2, 3:38 AM
nand committed rL370636: [Clang Interpreter] Initial patch for the constexpr interpreter.
[Clang Interpreter] Initial patch for the constexpr interpreter
Mon, Sep 2, 3:38 AM

Sat, Aug 31

nand abandoned D67043: [Support] Generic wrapper over __builtin_clz with cross-platform fallback.
Sat, Aug 31, 1:53 PM · Restricted Project
nand updated the summary of D67043: [Support] Generic wrapper over __builtin_clz with cross-platform fallback.
Sat, Aug 31, 1:42 PM · Restricted Project
nand updated the summary of D67043: [Support] Generic wrapper over __builtin_clz with cross-platform fallback.
Sat, Aug 31, 1:42 PM · Restricted Project
nand created D67043: [Support] Generic wrapper over __builtin_clz with cross-platform fallback.
Sat, Aug 31, 1:42 PM · Restricted Project
nand committed rGa6bef738bf14: Revert [Clang Interpreter] Initial patch for the constexpr interpreter (authored by nand).
Revert [Clang Interpreter] Initial patch for the constexpr interpreter
Sat, Aug 31, 8:15 AM
nand committed rL370588: Revert [Clang Interpreter] Initial patch for the constexpr interpreter.
Revert [Clang Interpreter] Initial patch for the constexpr interpreter
Sat, Aug 31, 8:15 AM
nand committed rGafcb3de11726: [Clang Interpreter] Initial patch for the constexpr interpreter (authored by nand).
[Clang Interpreter] Initial patch for the constexpr interpreter
Sat, Aug 31, 8:00 AM
nand committed rL370584: [Clang Interpreter] Initial patch for the constexpr interpreter.
[Clang Interpreter] Initial patch for the constexpr interpreter
Sat, Aug 31, 8:00 AM

Fri, Aug 30

nand committed rG0300c3536a33: Revert [Clang Interpreter] Initial patch for the constexpr interpreter (authored by nand).
Revert [Clang Interpreter] Initial patch for the constexpr interpreter
Fri, Aug 30, 2:32 PM
nand committed rL370535: Revert [Clang Interpreter] Initial patch for the constexpr interpreter.
Revert [Clang Interpreter] Initial patch for the constexpr interpreter
Fri, Aug 30, 2:32 PM
nand committed rGd4c1002e0bbb: [Clang Interpreter] Initial patch for the constexpr interpreter (authored by nand).
[Clang Interpreter] Initial patch for the constexpr interpreter
Fri, Aug 30, 2:17 PM
nand committed rL370531: [Clang Interpreter] Initial patch for the constexpr interpreter.
[Clang Interpreter] Initial patch for the constexpr interpreter
Fri, Aug 30, 2:16 PM
nand updated the diff for D66808: [ConstExprPreter] Full patch of the interpreter..

Added more features

Fri, Aug 30, 10:34 AM · Restricted Project
nand committed rG5c8b94a672e7: Revert [Clang Interpreter] Initial patch for the constexpr interpreter (authored by nand).
Revert [Clang Interpreter] Initial patch for the constexpr interpreter
Fri, Aug 30, 8:43 AM
nand committed rL370481: Revert [Clang Interpreter] Initial patch for the constexpr interpreter.
Revert [Clang Interpreter] Initial patch for the constexpr interpreter
Fri, Aug 30, 8:42 AM
nand committed rL370476: [Clang Interpreter] Initial patch for the constexpr interpreter.
[Clang Interpreter] Initial patch for the constexpr interpreter
Fri, Aug 30, 8:02 AM
nand committed rGa55909505497: [Clang Interpreter] Initial patch for the constexpr interpreter (authored by nand).
[Clang Interpreter] Initial patch for the constexpr interpreter
Fri, Aug 30, 8:02 AM
nand closed D64146: [Clang Interpreter] Initial patch for the constexpr interpreter.
Fri, Aug 30, 8:02 AM · Restricted Project, Restricted Project

Thu, Aug 29

nand committed rG7bd0a78faee8: [NFC] Test commit - sorted headers. (authored by nand).
[NFC] Test commit - sorted headers.
Thu, Aug 29, 2:58 PM
nand committed rL370412: [NFC] Test commit - sorted headers..
[NFC] Test commit - sorted headers.
Thu, Aug 29, 2:57 PM

Tue, Aug 27

nand updated the diff for D64146: [Clang Interpreter] Initial patch for the constexpr interpreter.

replaced llvm::make_unique with std::make_unique

Tue, Aug 27, 11:30 AM · Restricted Project, Restricted Project
nand updated the diff for D64146: [Clang Interpreter] Initial patch for the constexpr interpreter.

deactivated tests

Tue, Aug 27, 10:13 AM · Restricted Project, Restricted Project
nand edited reviewers for D66808: [ConstExprPreter] Full patch of the interpreter., added: rsmith, Bigcheese, jfb, dexonsmith; removed: jdoerfert.
Tue, Aug 27, 9:15 AM · Restricted Project
nand created D66808: [ConstExprPreter] Full patch of the interpreter..
Tue, Aug 27, 9:13 AM · Restricted Project
nand updated the diff for D64146: [Clang Interpreter] Initial patch for the constexpr interpreter.

refactoring + implemented changes

Tue, Aug 27, 9:08 AM · Restricted Project, Restricted Project

Aug 13 2019

nand added a comment to D64146: [Clang Interpreter] Initial patch for the constexpr interpreter.

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.

Aug 13 2019, 7:19 AM · Restricted Project, Restricted Project
nand added a comment to D64146: [Clang Interpreter] Initial patch for the constexpr interpreter.

updated diff, implemented requested changes

Aug 13 2019, 7:07 AM · Restricted Project, Restricted Project
nand updated the diff for D64146: [Clang Interpreter] Initial patch for the constexpr interpreter.

Implemented @zygoloid's suggestions

Aug 13 2019, 7:07 AM · Restricted Project, Restricted Project

Aug 4 2019

nand retitled D64146: [Clang Interpreter] Initial patch for the constexpr interpreter from [ConstExprPreter][WIP] Initial patch for the constexpr interpreter to [Clang Interpreter] Initial patch for the constexpr interpreter.
Aug 4 2019, 8:23 PM · Restricted Project, Restricted Project
nand updated the diff for D64146: [Clang Interpreter] Initial patch for the constexpr interpreter.

Implemented suggestions from @rsmith.

Aug 4 2019, 8:23 PM · Restricted Project, Restricted Project

Jul 31 2019

nand added a comment to D64146: [Clang Interpreter] Initial patch for the constexpr interpreter.

I have applied most of the changes you suggested to my HEAD which had significantly more functionality, including a replacement of Opcodes.in with TableGen.
Quite a few of your concerns are answered by the features I have added between submitting the patch and now. The interpreter now stands at ~6k LOC.

Jul 31 2019, 2:11 PM · Restricted Project, Restricted Project
nand updated the diff for D65536: [ConstExprPreter] Overflow-detecting methods use GCC or clang builtins.

removed redundant check

Jul 31 2019, 1:59 PM · Restricted Project
nand created D65536: [ConstExprPreter] Overflow-detecting methods use GCC or clang builtins.
Jul 31 2019, 1:32 PM · Restricted Project
nand added inline comments to D65494: [Support] Added overflow checking add, sub and mul..
Jul 31 2019, 10:10 AM · Restricted Project
nand added a comment to D65494: [Support] Added overflow checking add, sub and mul..

replaced char with signed char

Jul 31 2019, 9:17 AM · Restricted Project
nand updated the diff for D65494: [Support] Added overflow checking add, sub and mul..

s/char/signed char/

Jul 31 2019, 9:17 AM · Restricted Project
nand added a comment to D65494: [Support] Added overflow checking add, sub and mul..

Just checked: tests pass with UBSan.

Jul 31 2019, 7:40 AM · Restricted Project
nand updated the diff for D65494: [Support] Added overflow checking add, sub and mul..

Updated comments about bitcast

Jul 31 2019, 7:01 AM · Restricted Project
nand added inline comments to D65494: [Support] Added overflow checking add, sub and mul..
Jul 31 2019, 7:01 AM · Restricted Project

Jul 30 2019

nand created D65494: [Support] Added overflow checking add, sub and mul..
Jul 30 2019, 5:39 PM · Restricted Project

Jul 29 2019

nand added a comment to D64146: [Clang Interpreter] Initial patch for the constexpr interpreter.

We can add a separate integer type which tracks all the additional information required by __builtin_constant_p and compile all integers to it in this context. A later patch added an APInt fallback to the interpreter if an integral cannot be mapped to a type supported by the VM - this mechanism could be used to implement the fallback for contexts which cast pointers to integers.

Jul 29 2019, 1:03 PM · Restricted Project, Restricted Project
nand added a comment to D64146: [Clang Interpreter] Initial patch for the constexpr interpreter.

How do you intend to represent pointers cast to integer types? Allocating 64 bits of state for a 64-bit integer is insufficient to model that case.

Jul 29 2019, 10:03 AM · Restricted Project, Restricted Project

Jul 8 2019

nand updated the diff for D64146: [Clang Interpreter] Initial patch for the constexpr interpreter.

Fixed read of call stack depth

Jul 8 2019, 3:19 PM · Restricted Project, Restricted Project

Jul 3 2019

nand added a reviewer for D64146: [Clang Interpreter] Initial patch for the constexpr interpreter: rsmith.
Jul 3 2019, 11:39 AM · Restricted Project, Restricted Project
nand updated the diff for D64146: [Clang Interpreter] Initial patch for the constexpr interpreter.

Fixed typo in command line flags

Jul 3 2019, 11:05 AM · Restricted Project, Restricted Project
nand retitled D64146: [Clang Interpreter] Initial patch for the constexpr interpreter from [ConstExprPreter] Initial patch for the constexpr interpreter to [ConstExprPreter][WIP] Initial patch for the constexpr interpreter.
Jul 3 2019, 10:33 AM · Restricted Project, Restricted Project
nand created D64146: [Clang Interpreter] Initial patch for the constexpr interpreter.
Jul 3 2019, 10:32 AM · Restricted Project, Restricted Project