Revision tags: llvmorg-21-init |
|
#
58fa55c0 |
| 14-Jan-2025 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode] Add init link for the RVO ptr (#122904)
|
#
ac857f9b |
| 14-Jan-2025 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode] Change the way we do init chains (#122871)
See the comment in Compiler<>::VisitCXXThisExpr. We need to mark the InitList explicitly, so we later know what to refer to when the init
[clang][bytecode] Change the way we do init chains (#122871)
See the comment in Compiler<>::VisitCXXThisExpr. We need to mark the InitList explicitly, so we later know what to refer to when the init chain is active.
show more ...
|
Revision tags: llvmorg-19.1.7 |
|
#
e86b68ff |
| 28-Dec-2024 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode] Add support for typeid pointers (#121251)
Add it as another kind of pointer, saving both a `Type*` for the result of the typeid() expression as well as one for the type of the type
[clang][bytecode] Add support for typeid pointers (#121251)
Add it as another kind of pointer, saving both a `Type*` for the result of the typeid() expression as well as one for the type of the typeid expression.
show more ...
|
Revision tags: llvmorg-19.1.6, llvmorg-19.1.5 |
|
#
ceaf6e91 |
| 25-Nov-2024 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode] Support ImplicitValueInitExpr for multi-dim arrays (#117312)
The attached test case from https://github.com/llvm/llvm-project/issues/117294 used to cause an assertion because we ca
[clang][bytecode] Support ImplicitValueInitExpr for multi-dim arrays (#117312)
The attached test case from https://github.com/llvm/llvm-project/issues/117294 used to cause an assertion because we called classifPrim() on an array type.
The new result doesn't crash but isn't exactly perfect either. Since the problem arises when evaluating an ImplicitValueInitExpr, we have no proper source location to point to. Point to the caller instead.
show more ...
|
Revision tags: llvmorg-19.1.4 |
|
#
ef2a104c |
| 31-Oct-2024 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode] Start implementing __builtin_bit_cast (#112126)
This is a subset of #68288, with hopefully narrower scope. It does not
support bitcasting to non-integral types yet.
Bitfields are
[clang][bytecode] Start implementing __builtin_bit_cast (#112126)
This is a subset of #68288, with hopefully narrower scope. It does not
support bitcasting to non-integral types yet.
Bitfields are supported, but only if they result in a full byte-sized
final buffer. It does not support casting from null-pointers yet or
casting from indeterminate bits.
The tests are from #68288 and partially from #74775.
The `BitcastBuffer` struct is currently always working in single bits,
but I plan to (try to) optimize this for the common full-byte case.
show more ...
|
Revision tags: llvmorg-19.1.3 |
|
#
9ae41c24 |
| 22-Oct-2024 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode] Create dummy pointers for non-reference DeclRefExprs (#113202)
... with non-constant initializers.
|
Revision tags: llvmorg-19.1.2 |
|
#
55d51dd9 |
| 10-Oct-2024 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode] Fix temporary lvalue base expression (#111808)
We need to use the MaterializeTemporaryExpr here so the checks in
ExprConstant.cpp do the right thing.
|
Revision tags: llvmorg-19.1.1 |
|
#
95ce78b7 |
| 29-Sep-2024 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode] Implement fixed-point-to-int casts (#110417)
And some cleanups around overflow handling.
|
#
6b62e04e |
| 28-Sep-2024 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode] Implement (N)EQ between fixed point and integral (#110358)
Convert the non-fixed-point side to a fixed-point type before doing the
comparison.
|
#
048bc672 |
| 27-Sep-2024 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode] Start implementing fixed point types (#110216)
Add the primitive type and implement to-bool casts.
|
#
3ea55d3c |
| 26-Sep-2024 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode] Add a source location to destructor calls (#110121)
The added test case is still diagnosed differently, but I'm not sure
which version is better.
|
Revision tags: llvmorg-19.1.0 |
|
#
3928edec |
| 10-Sep-2024 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode] Fix local destructor order (#107951)
Add appropriate scopes and use reverse-order iteration in
LocalScope::emitDestructors().
|
#
6f67c386 |
| 08-Sep-2024 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode] Fix a variable scope problem with continue/break jumps (#107738)
Cleaning up _all_ the scopes is a little too much. Only clean up until
the point here we started the scope relevan
[clang][bytecode] Fix a variable scope problem with continue/break jumps (#107738)
Cleaning up _all_ the scopes is a little too much. Only clean up until
the point here we started the scope relevant for the break/continue
statement.
show more ...
|
#
78cf9b83 |
| 07-Sep-2024 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode] Implement using operator new/operator delete (#107679)
Reuse the __builtin_operator_{new,delete} implementations.
|
#
83fea8b8 |
| 07-Sep-2024 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode] Allow continuing when discarded MemberExpr Base fails (#107231)
We don't need the value in this case, since we're discarding it anyway.
Allow continuing the interpretation but not
[clang][bytecode] Allow continuing when discarded MemberExpr Base fails (#107231)
We don't need the value in this case, since we're discarding it anyway.
Allow continuing the interpretation but note the side effect.
show more ...
|
#
67f9183c |
| 06-Sep-2024 |
yronglin <yronglin777@gmail.com> |
[clang][bytecode] Implement comparsion operators for vector type (#107258)
Implement ==, !=, <, <=, >, >= comparsion operators for vector type.
---------
Signed-off-by: yronglin <yronglin777@g
[clang][bytecode] Implement comparsion operators for vector type (#107258)
Implement ==, !=, <, <=, >, >= comparsion operators for vector type.
---------
Signed-off-by: yronglin <yronglin777@gmail.com>
show more ...
|
Revision tags: llvmorg-19.1.0-rc4 |
|
#
0f5f440f |
| 03-Sep-2024 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode] Pass FPOptions to floating point ops (#107063)
So we don't have to retrieve them from the InterpFrame, which is slow.
|
#
ee0d7063 |
| 28-Aug-2024 |
yronglin <yronglin777@gmail.com> |
[clang][bytecode] Implement constexpr vector unary operators +, -, ~, ! (#105996)
Implement constexpr vector unary operators +, -, ~ and ! .
- Follow the current constant interpreter. All of our
[clang][bytecode] Implement constexpr vector unary operators +, -, ~, ! (#105996)
Implement constexpr vector unary operators +, -, ~ and ! .
- Follow the current constant interpreter. All of our boolean operations
on vector types should be '-1' for the 'truth' type.
- Move the following functions from `Sema` to `ASTContext`, because we
used it in new interpreter.
```C++
QualType GetSignedVectorType(QualType V);
QualType GetSignedSizelessVectorType(QualType V);
```
---------
Signed-off-by: yronglin <yronglin777@gmail.com>
show more ...
|
Revision tags: llvmorg-19.1.0-rc3 |
|
#
ca148b21 |
| 20-Aug-2024 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode] Support ObjC blocks (#104551)
I started out by adding a new pointer type for blocks, and I was fully
prepared to compile their AST to bytecode and later call them.
... then I f
[clang][bytecode] Support ObjC blocks (#104551)
I started out by adding a new pointer type for blocks, and I was fully
prepared to compile their AST to bytecode and later call them.
... then I found out that the current interpreter doesn't support
calling blocks at all. So we reuse `Function` to support sources other
than `FunctionDecl`s and classify `BlockPointerType` as `PT_FnPtr`.
show more ...
|
#
a07aba5d |
| 16-Aug-2024 |
Timm Baeder <tbaeder@redhat.com> |
[clang] Rename all AST/Interp stuff to AST/ByteCode (#104552)
"Interp" clashes with the clang interpreter and people often confuse
this.
|