[PATCH] D132286: [clang][Interp] Implement function calls

2022-09-07 Thread Timm Bäder via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG8e41e6a4eafa: [clang][Interp] Implement function calls (authored by tbaeder). Changed prior to commit: https://reviews.llvm.org/D132286?vs=455791&id=458645#toc Repository: rG LLVM Github Monorepo CH

[PATCH] D132286: [clang][Interp] Implement function calls

2022-08-26 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman accepted this revision. aaron.ballman added a comment. This revision is now accepted and ready to land. LGTM aside from some small nits you can fix when landing. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:607-610 + if (auto R = + ByteCo

[PATCH] D132286: [clang][Interp] Implement function calls

2022-08-25 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 455791. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D132286/new/ https://reviews.llvm.org/D132286 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/ByteCodeExprGen.h clang/lib/AST/Interp/EvalEmitter.cpp clang/lib/AST/Inter

[PATCH] D132286: [clang][Interp] Implement function calls

2022-08-25 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman added a comment. It looks like precommit CI found some relevant failures. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:614 + +if (Optional T = classify(E->getType())) { + // Put arguments on the stack. tbaeder wrote: > aaron.ballm

[PATCH] D132286: [clang][Interp] Implement function calls

2022-08-23 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 454726. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D132286/new/ https://reviews.llvm.org/D132286 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/ByteCodeExprGen.h clang/lib/AST/Interp/EvalEmitter.cpp clang/lib/AST/Inter

[PATCH] D132286: [clang][Interp] Implement function calls

2022-08-23 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 454723. tbaeder marked 3 inline comments as done. tbaeder added a comment. I noticed two problems: 1. Calls returning void didn't work. That needed another new opcode 2. When creating a new stackframe and running `Intepret()`... there's nothing actually stop

[PATCH] D132286: [clang][Interp] Implement function calls

2022-08-22 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder marked 4 inline comments as done. tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:614 + +if (Optional T = classify(E->getType())) { + // Put arguments on the stack. aaron.ballman wrote: > Should this be using `

[PATCH] D132286: [clang][Interp] Implement function calls

2022-08-22 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:603 + if (const auto *FuncDecl = dyn_cast_or_null(Callee)) { +Function *Func = P.getFunction(FuncDecl); + Comment at: clang/lib/AST/Interp/ByteCodeE

[PATCH] D132286: [clang][Interp] Implement function calls

2022-08-21 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 454389. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D132286/new/ https://reviews.llvm.org/D132286 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/ByteCodeExprGen.h clang/lib/AST/Interp/EvalEmitter.cpp clang/lib/AST/Inter

[PATCH] D132286: [clang][Interp] Implement function calls

2022-08-21 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/test/AST/Interp/functions.cpp:38 +static_assert(add_second(10, 3, true) == 13, ""); +static_assert(add_second(300, -20, false) == 300, ""); shafik wrote: > I would expect a lot more test cases: trailing return type

[PATCH] D132286: [clang][Interp] Implement function calls

2022-08-21 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 454386. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D132286/new/ https://reviews.llvm.org/D132286 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/ByteCodeExprGen.h clang/lib/AST/Interp/Context.h clang/lib/AST/Interp/Eval

[PATCH] D132286: [clang][Interp] Implement function calls

2022-08-21 Thread Shafik Yaghmour via Phabricator via cfe-commits
shafik added inline comments. Comment at: clang/test/AST/Interp/functions.cpp:38 +static_assert(add_second(10, 3, true) == 13, ""); +static_assert(add_second(300, -20, false) == 300, ""); I would expect a lot more test cases: trailing return types, default argume

[PATCH] D132286: [clang][Interp] Implement function calls

2022-08-20 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/Interp.cpp:60 + S.Current = + new InterpFrame(S, const_cast(Func), S.Current, PC, {}); + This patch adds two `const_cast`s. They aren't strictly necessary, since the `InterpFrame` doesn't need

[PATCH] D132286: [clang][Interp] Implement function calls

2022-08-20 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: erichkeane, aaron.ballman, shafik, tahonermann. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. Add a `Call` op and use the existing infrastructure