[Lldb-commits] [lldb] [LLDB] Add type casting to DIL. (PR #159500)

2025-09-19 Thread Ilia Kuklin via lldb-commits
@@ -80,15 +159,64 @@ ASTNodeUP DILParser::Run() { // Parse an expression. // // expression: -//unary_expression +//cast_expression // -ASTNodeUP DILParser::ParseExpression() { return ParseUnaryExpression(); } +ASTNodeUP DILParser::ParseExpression() { return ParseCastE

[Lldb-commits] [lldb] [LLDB] Add type casting to DIL. (PR #159500)

2025-09-19 Thread Ilia Kuklin via lldb-commits
@@ -42,6 +44,83 @@ DILDiagnosticError::DILDiagnosticError(llvm::StringRef expr, m_detail.rendered = std::move(rendered_msg); } +llvm::Expected +DILGetTypeSystemFromCU(std::shared_ptr ctx) { + SymbolContext symbol_context = + ctx->GetSymbolContext(lldb::eSymbolContextCo

[Lldb-commits] [lldb] [LLDB] Add type casting to DIL. (PR #159500)

2025-09-19 Thread Ilia Kuklin via lldb-commits
@@ -0,0 +1,81 @@ +// CStyleCast, main.cpp + +#include +#include +#include +#include +#include +#include +#include + +namespace ns { + +typedef int myint; + +class Foo {}; + +namespace inner { + +using mydouble = double; + +class Foo {}; + +} // namespace inner + +} // names

[Lldb-commits] [lldb] [LLDB] Add type casting to DIL. (PR #159500)

2025-09-19 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd edited https://github.com/llvm/llvm-project/pull/159500 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [LLDB] Add type casting to DIL. (PR #159500)

2025-09-19 Thread Ilia Kuklin via lldb-commits
@@ -42,6 +44,83 @@ DILDiagnosticError::DILDiagnosticError(llvm::StringRef expr, m_detail.rendered = std::move(rendered_msg); } +llvm::Expected +DILGetTypeSystemFromCU(std::shared_ptr ctx) { + SymbolContext symbol_context = + ctx->GetSymbolContext(lldb::eSymbolContextCo

[Lldb-commits] [lldb] [LLDB] Add type casting to DIL. (PR #159500)

2025-09-19 Thread Ilia Kuklin via lldb-commits
@@ -0,0 +1,233 @@ +""" +Make sure 'frame var' using DIL parser/evaultor works for C-Style casts. +""" + +import lldb +from lldbsuite.test.lldbtest import * +from lldbsuite.test.decorators import * +from lldbsuite.test import lldbutil + +import os +import shutil +import time + +cla

[Lldb-commits] [lldb] [LLDB] Add type casting to DIL. (PR #159500)

2025-09-19 Thread Ilia Kuklin via lldb-commits
@@ -42,6 +44,83 @@ DILDiagnosticError::DILDiagnosticError(llvm::StringRef expr, m_detail.rendered = std::move(rendered_msg); } +llvm::Expected +DILGetTypeSystemFromCU(std::shared_ptr ctx) { + SymbolContext symbol_context = + ctx->GetSymbolContext(lldb::eSymbolContextCo

[Lldb-commits] [lldb] [LLDB] Add type casting to DIL. (PR #159500)

2025-09-19 Thread Ilia Kuklin via lldb-commits
@@ -0,0 +1,233 @@ +""" +Make sure 'frame var' using DIL parser/evaultor works for C-Style casts. +""" + +import lldb +from lldbsuite.test.lldbtest import * +from lldbsuite.test.decorators import * +from lldbsuite.test import lldbutil + +import os +import shutil +import time + +cla

[Lldb-commits] [lldb] [LLDB] Add type casting to DIL. (PR #159500)

2025-09-19 Thread Ilia Kuklin via lldb-commits
@@ -0,0 +1,81 @@ +// CStyleCast, main.cpp + +#include +#include +#include +#include +#include +#include +#include + +namespace ns { + +typedef int myint; + +class Foo {}; + +namespace inner { + +using mydouble = double; + +class Foo {}; + +} // namespace inner + +} // names

[Lldb-commits] [lldb] [LLDB] Add type casting to DIL. (PR #159500)

2025-09-19 Thread Ilia Kuklin via lldb-commits
@@ -608,4 +635,238 @@ Interpreter::Visit(const BooleanLiteralNode *node) { return ValueObject::CreateValueObjectFromBool(m_target, value, "result"); } +llvm::Expected Interpreter::VerifyCStyleCastType( +lldb::ValueObjectSP &operand, CompilerType &op_type, +CompilerTy

[Lldb-commits] [lldb] [LLDB] Add type casting to DIL. (PR #159500)

2025-09-19 Thread Ilia Kuklin via lldb-commits
@@ -0,0 +1,233 @@ +""" +Make sure 'frame var' using DIL parser/evaultor works for C-Style casts. +""" + +import lldb +from lldbsuite.test.lldbtest import * +from lldbsuite.test.decorators import * +from lldbsuite.test import lldbutil + +import os +import shutil +import time + +cla

[Lldb-commits] [lldb] [LLDB] Add type casting to DIL. (PR #159500)

2025-09-19 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd commented: I think we need to get rid of everything that references C++ keywords directly. I don't think we need to parse the builtin type manually, so we can just remove `IsSimpleTypeSpecifierKeyword`, `HandleSimpleTypeSpecifier`, and `TypeDeclaration` class altogeth

[Lldb-commits] [lldb] [LLDB] Add unary plus and minus to DIL (PR #155617)

2025-09-12 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd updated https://github.com/llvm/llvm-project/pull/155617 >From 4d14bbb31d0411c45b95778d1659ccc416165be1 Mon Sep 17 00:00:00 2001 From: Ilia Kuklin Date: Mon, 4 Aug 2025 19:11:55 +0500 Subject: [PATCH 1/9] [LLDB] Add unary plus and minus to DIL --- lldb/include/lldb/V

[Lldb-commits] [lldb] [lldb] Allow division by floating point zero in Scalar (PR #158115)

2025-09-12 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd created https://github.com/llvm/llvm-project/pull/158115 `Scalar` produced an invalid value when detecting any division by zero. This should be only for integer division. >From 8cffb7a919d4ca4dc4421e24d8f19eb1d58d5523 Mon Sep 17 00:00:00 2001 From: Ilia Kuklin Date:

[Lldb-commits] [lldb] [LLDB] Add boolean literals to DIL. (PR #157992)

2025-09-12 Thread Ilia Kuklin via lldb-commits
kuilpd wrote: Can we add a couple of tests for these to `TestFrameVarDILLiterals.py`? https://github.com/llvm/llvm-project/pull/157992 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commit

[Lldb-commits] [lldb] [LLDB] Add unary plus and minus to DIL (PR #155617)

2025-09-03 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd updated https://github.com/llvm/llvm-project/pull/155617 >From 4d14bbb31d0411c45b95778d1659ccc416165be1 Mon Sep 17 00:00:00 2001 From: Ilia Kuklin Date: Mon, 4 Aug 2025 19:11:55 +0500 Subject: [PATCH 1/6] [LLDB] Add unary plus and minus to DIL --- lldb/include/lldb/V

[Lldb-commits] [lldb] Revert "[LLDB] Add `ScalarLiteralNode` and literal parsing in DIL" (PR #155605)

2025-08-27 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd closed https://github.com/llvm/llvm-project/pull/155605 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] Reapply "[LLDB] Add `ScalarLiteralNode` and literal parsing in DIL" (PR #155610)

2025-08-27 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd closed https://github.com/llvm/llvm-project/pull/155610 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] Revert "[LLDB] Add `ScalarLiteralNode` and literal parsing in DIL" (PR #155605)

2025-08-27 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd created https://github.com/llvm/llvm-project/pull/155605 Reverts llvm/llvm-project#152308 >From 4a1613ba9b21ab053ef2e659835278f248be85aa Mon Sep 17 00:00:00 2001 From: Ilia Kuklin Date: Wed, 27 Aug 2025 17:07:02 +0500 Subject: [PATCH] Revert "[LLDB] Add `ScalarLiteral

[Lldb-commits] [lldb] [LLDB] Add `ScalarLiteralNode` and literal parsing in DIL (PR #152308)

2025-08-27 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd closed https://github.com/llvm/llvm-project/pull/152308 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [LLDB] Add `ScalarLiteralNode` and literal parsing in DIL (PR #152308)

2025-08-19 Thread Ilia Kuklin via lldb-commits
kuilpd wrote: @labath I have the next PR standing by, is this one ready for merging? https://github.com/llvm/llvm-project/pull/152308 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commit

[Lldb-commits] [lldb] [LLDB] Add `ScalarLiteralNode` and literal parsing in DIL (PR #152308)

2025-08-17 Thread Ilia Kuklin via lldb-commits
@@ -402,4 +404,122 @@ Interpreter::Visit(const BitFieldExtractionNode *node) { return child_valobj_sp; } +static lldb::TypeSystemSP GetTypeSystemFromCU(std::shared_ptr ctx) { + SymbolContext symbol_context = + ctx->GetSymbolContext(lldb::eSymbolContextCompUnit); + ll

[Lldb-commits] [lldb] [LLDB] Add `ScalarLiteralNode` and literal parsing in DIL (PR #152308)

2025-08-17 Thread Ilia Kuklin via lldb-commits
@@ -402,4 +404,125 @@ Interpreter::Visit(const BitFieldExtractionNode *node) { return child_valobj_sp; } +static llvm::Expected +GetTypeSystemFromCU(std::shared_ptr ctx) { + SymbolContext symbol_context = + ctx->GetSymbolContext(lldb::eSymbolContextCompUnit); + lldb::

[Lldb-commits] [lldb] [LLDB] Add `ScalarLiteralNode` and literal parsing in DIL (PR #152308)

2025-08-17 Thread Ilia Kuklin via lldb-commits
@@ -402,4 +404,125 @@ Interpreter::Visit(const BitFieldExtractionNode *node) { return child_valobj_sp; } +static llvm::Expected +GetTypeSystemFromCU(std::shared_ptr ctx) { + SymbolContext symbol_context = + ctx->GetSymbolContext(lldb::eSymbolContextCompUnit); + lldb::

[Lldb-commits] [lldb] [LLDB] Add `ScalarLiteralNode` and literal parsing in DIL (PR #152308)

2025-08-17 Thread Ilia Kuklin via lldb-commits
@@ -28,12 +28,14 @@ class Token { arrow, coloncolon, eof, +floating_constant, kuilpd wrote: Done https://github.com/llvm/llvm-project/pull/152308 ___ lldb-commits mailing list lldb-commits@lists.llvm

[Lldb-commits] [lldb] [LLDB] Add `ScalarLiteralNode` and literal parsing in DIL (PR #152308)

2025-08-17 Thread Ilia Kuklin via lldb-commits
@@ -175,7 +185,27 @@ TEST(DILLexerTests, NumbersTest) { EXPECT_THAT_EXPECTED(maybe_lexer, llvm::Succeeded()); DILLexer lexer(*maybe_lexer); Token token = lexer.GetCurrentToken(); -EXPECT_TRUE(token.IsNot(Token::numeric_constant)); +EXPECT_TRUE(token.IsNot(To

[Lldb-commits] [lldb] [LLDB] Add `ScalarLiteralNode` and literal parsing in DIL (PR #152308)

2025-08-17 Thread Ilia Kuklin via lldb-commits
@@ -31,6 +31,9 @@ identifier = ? C99 Identifier ? ; integer_literal = ? Integer constant: hexademical, decimal, octal, binary ? ; +numeric_literal = ? Integer constant: hexademical, decimal, octal, binary ? kuilpd wrote: Ah, it's just a leftover from the sub

[Lldb-commits] [lldb] [LLDB] Add `ScalarLiteralNode` and literal parsing in DIL (PR #152308)

2025-08-14 Thread Ilia Kuklin via lldb-commits
@@ -54,6 +54,15 @@ class Interpreter : Visitor { Visit(const ArraySubscriptNode *node) override; llvm::Expected Visit(const BitFieldExtractionNode *node) override; + llvm::Expected + Visit(const IntegerLiteralNode *node) override; + llvm::Expected + Visit(const FloatL

[Lldb-commits] [lldb] [LLDB] Add `ScalarLiteralNode` and literal parsing in DIL (PR #152308)

2025-08-14 Thread Ilia Kuklin via lldb-commits
@@ -70,13 +75,32 @@ static std::optional IsWord(llvm::StringRef expr, return candidate; } -static bool IsNumberBodyChar(char ch) { return IsDigit(ch) || IsLetter(ch); } +static bool IsNumberBodyChar(char ch) { + return IsDigit(ch) || IsLetter(ch) || ch == '.'; +} -static

[Lldb-commits] [lldb] [LLDB] Add `ScalarLiteralNode` and literal parsing in DIL (PR #152308)

2025-08-08 Thread Ilia Kuklin via lldb-commits
kuilpd wrote: > I have a feeling that this would actually be better off as two node types > (float and integer), as each stage (lexer, parser and evaluator) handles the > two differently. Maybe then the integer node could use llvm::APInt directly, > which would make the `is_unsigned` field loo

[Lldb-commits] [lldb] [LLDB] Add `ScalarLiteralNode` and literal parsing in DIL (PR #152308)

2025-08-08 Thread Ilia Kuklin via lldb-commits
@@ -402,4 +404,122 @@ Interpreter::Visit(const BitFieldExtractionNode *node) { return child_valobj_sp; } +static lldb::TypeSystemSP GetTypeSystemFromCU(std::shared_ptr ctx) { + SymbolContext symbol_context = + ctx->GetSymbolContext(lldb::eSymbolContextCompUnit); + au

[Lldb-commits] [lldb] [LLDB] Add `ScalarLiteralNode` and literal parsing in DIL (PR #152308)

2025-08-08 Thread Ilia Kuklin via lldb-commits
@@ -72,12 +74,39 @@ static std::optional IsWord(llvm::StringRef expr, static bool IsNumberBodyChar(char ch) { return IsDigit(ch) || IsLetter(ch); } -static std::optional IsNumber(llvm::StringRef expr, - llvm::StringRef &remainder

[Lldb-commits] [lldb] [LLDB] Add `ScalarLiteralNode` and literal parsing in DIL (PR #152308)

2025-08-08 Thread Ilia Kuklin via lldb-commits
@@ -178,6 +179,40 @@ class BitFieldExtractionNode : public ASTNode { int64_t m_last_index; }; +class ScalarLiteralNode : public ASTNode { +public: + ScalarLiteralNode(uint32_t location, Scalar value, uint32_t radix, +bool is_unsigned, bool is_long, bool

[Lldb-commits] [lldb] [LLDB] Add `ScalarLiteralNode` and literal parsing in DIL (PR #152308)

2025-08-08 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd updated https://github.com/llvm/llvm-project/pull/152308 >From 55fbd4724159eea9868df1eeac9b83bf5894544b Mon Sep 17 00:00:00 2001 From: Ilia Kuklin Date: Fri, 1 Aug 2025 20:14:59 +0500 Subject: [PATCH 1/7] Add ScalarLiteralNode --- lldb/include/lldb/ValueObject/DILAST

[Lldb-commits] [lldb] [LLDB] Add `ScalarLiteralNode` and literal parsing in DIL (PR #152308)

2025-08-07 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd updated https://github.com/llvm/llvm-project/pull/152308 >From 55fbd4724159eea9868df1eeac9b83bf5894544b Mon Sep 17 00:00:00 2001 From: Ilia Kuklin Date: Fri, 1 Aug 2025 20:14:59 +0500 Subject: [PATCH 1/4] Add ScalarLiteralNode --- lldb/include/lldb/ValueObject/DILAST

[Lldb-commits] [lldb] Draft: [LLDB] Add scalar literal node (PR #147064)

2025-08-06 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd closed https://github.com/llvm/llvm-project/pull/147064 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [llvm] [LLDB] Add `ScalarLiteralNode` and literal parsing in DIL (PR #152308)

2025-08-06 Thread Ilia Kuklin via lldb-commits
kuilpd wrote: `PickLiteralType` follows C++ logic, but this can later be put in a plugin if the logic doesn't apply everywhere. I'm not sure how to test this though, since the type is picked by width, so the resulting type name can be different on different machines. I also split lexing numbe

[Lldb-commits] [lldb] [llvm] [LLDB] Add `ScalarLiteralNode` and literal parsing in DIL (PR #152308)

2025-08-06 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd created https://github.com/llvm/llvm-project/pull/152308 This patch introduces `ScalarLiteralNode` without any uses by other nodes yet. It also includes lexing and parsing for integer and floating point numbers, and makes a function `getAutoSenseRadix` in `StringRef`

[Lldb-commits] [lldb] [lldb] Add `ValueObject::CreateValueObjectFromScalar` and fix `Scalar::GetData` (PR #151350)

2025-08-06 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd closed https://github.com/llvm/llvm-project/pull/151350 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [lldb] Add `ValueObject::CreateValueObjectFromScalar` and fix `Scalar::GetData` (PR #151350)

2025-08-01 Thread Ilia Kuklin via lldb-commits
kuilpd wrote: @labath What are your thoughts? https://github.com/llvm/llvm-project/pull/151350 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [LLDB] Update DIL handling of array subscripting. (PR #151605)

2025-08-01 Thread Ilia Kuklin via lldb-commits
@@ -69,17 +69,19 @@ def test_subscript(self): substrs=["expected 'r_square', got: <'.'"], ) -# Base should be a "pointer to T" and index should be of an integral type. -self.expect( -"frame var 'idx_1[0]'", -error=Tr

[Lldb-commits] [lldb] [LLDB] Update DIL handling of array subscripting. (PR #151605)

2025-08-01 Thread Ilia Kuklin via lldb-commits
@@ -323,47 +323,144 @@ Interpreter::Visit(const MemberOfNode *node) { m_expr, errMsg, node->GetLocation(), node->GetFieldName().size()); } + llvm::Expected Interpreter::Visit(const ArraySubscriptNode *node) { auto lhs_or_err = Evaluate(node->GetBase()); if (!lhs_

[Lldb-commits] [lldb] [lldb] Add `ValueObject::CreateValueObjectFromScalar` and fix `Scalar::GetData` (PR #151350)

2025-07-31 Thread Ilia Kuklin via lldb-commits
kuilpd wrote: Changed the default address type and tried it with pointers, it works. I just didn't think about creating pointers with this function initially, but apparently it can be done as well. https://github.com/llvm/llvm-project/pull/151350 ___

[Lldb-commits] [lldb] [lldb] Add `ValueObject::CreateValueObjectFromScalar` and fix `Scalar::GetData` (PR #151350)

2025-07-31 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd updated https://github.com/llvm/llvm-project/pull/151350 >From ff14392e82fb5658c87b4376551a0dc366b33e8c Mon Sep 17 00:00:00 2001 From: Ilia Kuklin Date: Wed, 30 Jul 2025 17:39:43 +0500 Subject: [PATCH 1/2] [lldb] Add `ValueObject::CreateValueObjectFromScalar` --- lld

[Lldb-commits] [lldb] [lldb] Add `ValueObject::CreateValueObjectFromScalar` and fix `Scalar::GetData` (PR #151350)

2025-07-30 Thread Ilia Kuklin via lldb-commits
kuilpd wrote: > One big behavioral difference between your `CreateValueObjectFromValue` VO's > and the `CreateValueObjectFromAPInt` ones is that you set the child address > type to invalid, but the APInt one sets it to "load". That's fine so long as > the Value only holds ints and not pointer

[Lldb-commits] [lldb] [lldb] Add `ValueObject::CreateValueObjectFromScalar` and fix `Scalar::GetData` (PR #151350)

2025-07-30 Thread Ilia Kuklin via lldb-commits
kuilpd wrote: I'm trying here an alternative way of creating a const `ValueObject`. The way it's currently done with `CreateValueObjectFromAPInt` is getting its data bytes and sending them to `ValueObject::CreateValueObjectFromData`, which creates a `ValueObjectConstResult` with `ValueType::H

[Lldb-commits] [lldb] [lldb] Add `ValueObject::CreateValueObjectFromScalar` and fix `Scalar::GetData` (PR #151350)

2025-07-30 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd created https://github.com/llvm/llvm-project/pull/151350 Add `ValueObject::CreateValueObjectFromScalar` function and adjust `Scalar::GetData` to be able to both extend and truncate the data bytes in Scalar to a desired size. >From ff14392e82fb5658c87b4376551a0dc366b

[Lldb-commits] [lldb] Draft: [LLDB] Add scalar literal node (PR #147064)

2025-07-25 Thread Ilia Kuklin via lldb-commits
kuilpd wrote: > > single interface to traverse the AST tree: > > That's the part that would change in this setup. Instead of one API, we'd > have two: `EvaluateValueNode()` and `EvaluateScalarNode()`, and we'd have two > node hierarchies: ValueNode and ScalarNode. MemberOfNode would be a Value

[Lldb-commits] [lldb] Draft: [LLDB] Add scalar literal node (PR #147064)

2025-07-24 Thread Ilia Kuklin via lldb-commits
kuilpd wrote: > We can definitely add functions to covert (directly) between Scalars and > ValueObjects (in fact, I think the only reason that the APInt overloads > currently exists is because of the initial attempt to upstream the DIL > implementation). Ah, I didn't know that, I think I joi

[Lldb-commits] [lldb] [llvm] [LLDB] Switch to using DIL as default implementation for 'frame var'. (PR #147887)

2025-07-24 Thread Ilia Kuklin via lldb-commits
kuilpd wrote: > The process for that is > [here](https://llvm.org/docs/GitHub.html#backporting-fixes-to-the-release-branches), > though it's a bit unfortunate that a week has passed since then (I was OOO > this week so I couldn't reply sooner). At this point, I'm no longer sure it > makes sen

[Lldb-commits] [lldb] [llvm] [LLDB] Switch to using DIL as default implementation for 'frame var'. (PR #147887)

2025-07-17 Thread Ilia Kuklin via lldb-commits
kuilpd wrote: > It looks like this just barely didn't make it into the 21.x release branch. > Do we want to cherry-pick that over? I think it would be a good way to flush > out any issues... I think so too, this and #149117. Do we just create a PR with the same changes into `release/21.x` bra

[Lldb-commits] [lldb] Draft: [LLDB] Add scalar literal node (PR #147064)

2025-07-16 Thread Ilia Kuklin via lldb-commits
kuilpd wrote: > say that values retain their width and signedness, but then get converted > into the wider width using C-like rules. We already have this implemented > inside the Scalar class (which wraps APInt), so this would be best in terms > of code reuse, and it would produce few surprise

[Lldb-commits] [lldb] Draft: [LLDB] Add scalar literal node (PR #147064)

2025-07-16 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd updated https://github.com/llvm/llvm-project/pull/147064 >From cf1f908360399ac51770d9fb7e1dac03eceab0e9 Mon Sep 17 00:00:00 2001 From: Ilia Kuklin Date: Thu, 3 Jul 2025 19:34:17 +0500 Subject: [PATCH 1/2] [LLDB] *WIP* Add scalar literal node and binary addition --- l

[Lldb-commits] [lldb] [LLDB] Check comp_unit before accessing it in DIL (PR #147955)

2025-07-10 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd closed https://github.com/llvm/llvm-project/pull/147955 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [LLDB] Check comp_unit before accessing it in DIL (PR #147955)

2025-07-10 Thread Ilia Kuklin via lldb-commits
kuilpd wrote: Added a test without debug info and you're right, it fails without this fix. https://github.com/llvm/llvm-project/pull/147955 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-c

[Lldb-commits] [lldb] [LLDB] Check comp_unit before accessing it in DIL (PR #147955)

2025-07-10 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd updated https://github.com/llvm/llvm-project/pull/147955 >From 6b72ecb0f25b34ca112220e8587ef7fea46a38dd Mon Sep 17 00:00:00 2001 From: Ilia Kuklin Date: Thu, 10 Jul 2025 17:45:15 +0500 Subject: [PATCH 1/2] [LLDB] Check comp_unit before accessing it in DIL --- lldb/so

[Lldb-commits] [lldb] [LLDB] Check comp_unit before accessing it in DIL (PR #147955)

2025-07-10 Thread Ilia Kuklin via lldb-commits
kuilpd wrote: > It's pretty much an accident we hit this in the test suite. Could you create > a dedicated test for this. I guess the scenario is "running 'frame var' in a > frame without debug info" (?) No debug information at all? Or test the same `settings set symbols.enable-external-looku

[Lldb-commits] [lldb] [llvm] [LLDB] Switch to using DIL as default implementation for 'frame var'. (PR #147887)

2025-07-10 Thread Ilia Kuklin via lldb-commits
kuilpd wrote: I addressed `lldb-shell-subprocess` tests failing in #147955 , but there's still 2 data formatter tests failing, not sure what's happening there yet. https://github.com/llvm/llvm-project/pull/147887 ___ lldb-commits mailing list lldb-com

[Lldb-commits] [lldb] [LLDB] Check comp_unit before accessing it in DIL (PR #147955)

2025-07-10 Thread Ilia Kuklin via lldb-commits
kuilpd wrote: `lldb-shell-subprocess` tests were failing because they add a setting `settings set symbols.enable-external-lookup false`, which disables resolving variables for compile units, but still marks them as resolved, so `stack_frame->GetSymbolContext(lldb::eSymbolContextCompUnit)` just

[Lldb-commits] [lldb] [LLDB] Check comp_unit before accessing it in DIL (PR #147955)

2025-07-10 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd created https://github.com/llvm/llvm-project/pull/147955 Check `symbol_context.comp_unit` before accessing it to avoid `nullptr` dereferencing. >From 6b72ecb0f25b34ca112220e8587ef7fea46a38dd Mon Sep 17 00:00:00 2001 From: Ilia Kuklin Date: Thu, 10 Jul 2025 17:45:15 +

[Lldb-commits] [lldb] Draft: [LLDB] Add scalar literal node (PR #147064)

2025-07-09 Thread Ilia Kuklin via lldb-commits
kuilpd wrote: > but I can also imagine doing something like python's "arbitrary width" > integers. Isn't this basically `llvm::APInt` class? We could just disregard every integer's type, add their values as `APInt` and return the result with a maximum width integer type. I kind of like this p

[Lldb-commits] [lldb] Draft: [LLDB] Add scalar literal node (PR #147064)

2025-07-09 Thread Ilia Kuklin via lldb-commits
kuilpd wrote: > We could, but I'm not sure if that's the most important question right now. > The whole BasicType concept is very C-like. There is no "unsigned long long" > basic type in swift (or pretty much any other language). While you could say > that the function returns the langauge's e

[Lldb-commits] [lldb] Draft: [LLDB] Add scalar literal node (PR #147064)

2025-07-04 Thread Ilia Kuklin via lldb-commits
kuilpd wrote: @labath @cmtice @jimingham @asl This is a draft with some potential changes I'd like to discuss regarding how to handle the type system of constant literals. I'm also trying to demonstrate how they interact further with other values in a binary addition node. A lot of the code is

[Lldb-commits] [lldb] Draft: [LLDB] Add scalar literal node (PR #147064)

2025-07-04 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd created https://github.com/llvm/llvm-project/pull/147064 A draft to discuss scalar literal node implementation >From cf1f908360399ac51770d9fb7e1dac03eceab0e9 Mon Sep 17 00:00:00 2001 From: Ilia Kuklin Date: Thu, 3 Jul 2025 19:34:17 +0500 Subject: [PATCH] [LLDB] *WIP*

[Lldb-commits] [lldb] [LLDB] Optimize identifier lookup in DIL (PR #146094)

2025-07-04 Thread Ilia Kuklin via lldb-commits
kuilpd wrote: Alright, thank you! https://github.com/llvm/llvm-project/pull/146094 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [LLDB] Optimize identifier lookup in DIL (PR #146094)

2025-07-03 Thread Ilia Kuklin via lldb-commits
kuilpd wrote: @Michael137 If I add a non-static member to that struct, would dsymutil keep the static member debug info as well? https://github.com/llvm/llvm-project/pull/146094 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.

[Lldb-commits] [lldb] [LLDB] Optimize identifier lookup in DIL (PR #146094)

2025-07-03 Thread Ilia Kuklin via lldb-commits
kuilpd wrote: > This might be isolated to dsyms (i remember dsymutil stripping some static > inlines, but i forget exactly in which cases). This is very likely the case, but I don't have a machine to debug this on. Could we just skip this test case? https://github.com/llvm/llvm-project/pull/1

[Lldb-commits] [lldb] [LLDB] Optimize identifier lookup in DIL (PR #146094)

2025-07-03 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd closed https://github.com/llvm/llvm-project/pull/146094 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [LLDB] Optimize identifier lookup in DIL (PR #146094)

2025-06-30 Thread Ilia Kuklin via lldb-commits
kuilpd wrote: > I'm not sure that's the right thing to do -- if there are multiple matches, > how can we know we picked the one that the user wanted to see? > What might matter for performance is, if returning false/nullptr here causes > the implementation to perform the lookup at a larger (mor

[Lldb-commits] [lldb] [LLDB] Optimize identifier lookup in DIL (PR #146094)

2025-06-27 Thread Ilia Kuklin via lldb-commits
kuilpd wrote: I did some benchmarks of DIL on Unreal Engine 5 (thousands of variables to search through) and noticed that our current variable lookup implementation is ~10 times slower than it was in `lldb-eval`, especially when it comes to global variables in other files. I looked into it and

[Lldb-commits] [lldb] [LLDB] Optimize identifier lookup in DIL (PR #146094)

2025-06-27 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd created https://github.com/llvm/llvm-project/pull/146094 Remove unused code and unnecessary function calls, optimize global variable search. Add more test cases. >From b69070a717fa80058af475397dae7a41f172c580 Mon Sep 17 00:00:00 2001 From: Ilia Kuklin Date: Tue, 24 J

[Lldb-commits] [lldb] [LLDB] Add negative number parsing to DIL (PR #144557)

2025-06-18 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd updated https://github.com/llvm/llvm-project/pull/144557 >From 49a615d48433dabc6f05848f40e38601222efe38 Mon Sep 17 00:00:00 2001 From: Ilia Kuklin Date: Tue, 17 Jun 2025 21:06:49 +0500 Subject: [PATCH 1/2] [LLDB] Add negative number parsing to DIL --- lldb/source/Val

[Lldb-commits] [lldb] [LLDB] Add negative number parsing to DIL (PR #144557)

2025-06-17 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd created https://github.com/llvm/llvm-project/pull/144557 None >From 49a615d48433dabc6f05848f40e38601222efe38 Mon Sep 17 00:00:00 2001 From: Ilia Kuklin Date: Tue, 17 Jun 2025 21:06:49 +0500 Subject: [PATCH] [LLDB] Add negative number parsing to DIL --- lldb/source/V

[Lldb-commits] [lldb] [LLDB] Add bit extraction to DIL (PR #141422)

2025-06-13 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd closed https://github.com/llvm/llvm-project/pull/141422 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [LLDB] Add bit extraction to DIL (PR #141422)

2025-06-12 Thread Ilia Kuklin via lldb-commits
@@ -62,7 +62,7 @@ def test_subscript(self): self.expect( "frame var 'int_arr[-1]'", error=True, -substrs=["unrecognized token"], +substrs=["failed to parse integer constant"], kuilpd wrote: Should I make

[Lldb-commits] [lldb] [LLDB] Add bit extraction to DIL (PR #141422)

2025-06-12 Thread Ilia Kuklin via lldb-commits
kuilpd wrote: @labath @jimingham Just to clarify, do we change `-` to `:` now in this PR or later, after we replace `frame var` with DIL? https://github.com/llvm/llvm-project/pull/141422 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https

[Lldb-commits] [lldb] [LLDB] Add bit extraction to DIL (PR #141422)

2025-05-25 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd created https://github.com/llvm/llvm-project/pull/141422 None >From b093c5fb20c56251c61235c748b673ce59840173 Mon Sep 17 00:00:00 2001 From: Ilia Kuklin Date: Tue, 20 May 2025 17:58:01 +0500 Subject: [PATCH] [LLDB] Add BitExtraction node to DIL --- lldb/include/lldb/

[Lldb-commits] [lldb] [LLDB] Add array subscription and integer parsing to DIL (PR #141102)

2025-05-25 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd closed https://github.com/llvm/llvm-project/pull/141102 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [LLDB] Add array subscription and integer parsing to DIL (PR #141102)

2025-05-25 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd edited https://github.com/llvm/llvm-project/pull/141102 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [LLDB] Add array subscription and integer parsing to DIL (PR #141102)

2025-05-25 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd updated https://github.com/llvm/llvm-project/pull/141102 >From 5210b8b00dfd05d092b3519cbb0a5480b3abe534 Mon Sep 17 00:00:00 2001 From: Ilia Kuklin Date: Thu, 22 May 2025 16:15:11 +0500 Subject: [PATCH 1/2] [LLDB] Add array subscription and integer parsing to DIL (#138

[Lldb-commits] [lldb] [LLDB] Add array subscription and integer parsing to DIL (PR #141102)

2025-05-22 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd edited https://github.com/llvm/llvm-project/pull/141102 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [LLDB] Add array subscription and integer parsing to DIL (PR #141102)

2025-05-22 Thread Ilia Kuklin via lldb-commits
kuilpd wrote: @labath This code ``` llvm::Expected num_children = synthetic->GetNumChildren(child_idx + 1); ``` didn't work for `std::vector` on Windows on AArch64, got a buildbot error there: https://lab.llvm.org/buildbot/#/builders/141/builds/8906 ``` AssertionError: ':1:7: array index

[Lldb-commits] [lldb] [LLDB] Add array subscription and integer parsing to DIL (PR #141102)

2025-05-22 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd created https://github.com/llvm/llvm-project/pull/141102 None >From ad2c40ea689c71074237287989fa7ae01bd428e4 Mon Sep 17 00:00:00 2001 From: Ilia Kuklin Date: Thu, 22 May 2025 16:15:11 +0500 Subject: [PATCH 1/2] [LLDB] Add array subscription and integer parsing to DIL

[Lldb-commits] [lldb] Revert "[LLDB] Add array subscription and integer parsing to DIL" (PR #141059)

2025-05-22 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd closed https://github.com/llvm/llvm-project/pull/141059 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] Revert "[LLDB] Add array subscription and integer parsing to DIL" (PR #141059)

2025-05-22 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd created https://github.com/llvm/llvm-project/pull/141059 Reverts llvm/llvm-project#138551 >From b2e110036df39bb33163b5cd6c8dacf9253b6b33 Mon Sep 17 00:00:00 2001 From: Ilia Kuklin Date: Thu, 22 May 2025 17:29:24 +0500 Subject: [PATCH] Revert "[LLDB] Add array subscrip

[Lldb-commits] [lldb] [LLDB] Add array subscription and integer parsing to DIL (PR #138551)

2025-05-22 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd closed https://github.com/llvm/llvm-project/pull/138551 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [LLDB] Add array subscription and integer parsing to DIL (PR #138551)

2025-05-20 Thread Ilia Kuklin via lldb-commits
@@ -272,4 +272,67 @@ Interpreter::Visit(const UnaryOpNode *node) { m_expr, "invalid ast: unexpected binary operator", node->GetLocation()); } +llvm::Expected +Interpreter::Visit(const ArraySubscriptNode *node) { + auto lhs_or_err = Evaluate(node->GetBase()); + if (!lhs

[Lldb-commits] [lldb] [LLDB] Add array subscription and integer parsing to DIL (PR #138551)

2025-05-20 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd updated https://github.com/llvm/llvm-project/pull/138551 >From ad204cdfd226ca2a886c5475775fe67b29a70926 Mon Sep 17 00:00:00 2001 From: Ilia Kuklin Date: Wed, 30 Apr 2025 22:03:50 +0500 Subject: [PATCH 1/7] [LLDB] Add array subscription and integer parsing to DIL ---

[Lldb-commits] [lldb] [LLDB] Add array subscription and integer parsing to DIL (PR #138551)

2025-05-16 Thread Ilia Kuklin via lldb-commits
@@ -272,4 +272,67 @@ Interpreter::Visit(const UnaryOpNode *node) { m_expr, "invalid ast: unexpected binary operator", node->GetLocation()); } +llvm::Expected +Interpreter::Visit(const ArraySubscriptNode *node) { + auto lhs_or_err = Evaluate(node->GetBase()); + if (!lhs

[Lldb-commits] [lldb] [LLDB] Add array subscription and integer parsing to DIL (PR #138551)

2025-05-16 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd updated https://github.com/llvm/llvm-project/pull/138551 Rate limit · GitHub body { background-color: #f6f8fa; color: #24292e; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-se

[Lldb-commits] [lldb] [LLDB] Add array subscription and integer parsing to DIL (PR #138551)

2025-05-16 Thread Ilia Kuklin via lldb-commits
@@ -111,7 +111,42 @@ ASTNodeUP DILParser::ParseUnaryExpression() { llvm_unreachable("invalid token kind"); } } - return ParsePrimaryExpression(); + return ParsePostfixExpression(); +} + +// Parse a postfix_expression. +// +// postfix_expression: +//primary_ex

[Lldb-commits] [lldb] [LLDB] Add array subscription and integer parsing to DIL (PR #138551)

2025-05-15 Thread Ilia Kuklin via lldb-commits
@@ -272,4 +272,67 @@ Interpreter::Visit(const UnaryOpNode *node) { m_expr, "invalid ast: unexpected binary operator", node->GetLocation()); } +llvm::Expected +Interpreter::Visit(const ArraySubscriptNode *node) { + auto lhs_or_err = Evaluate(node->GetBase()); + if (!lhs

[Lldb-commits] [lldb] [LLDB] Add array subscription and integer parsing to DIL (PR #138551)

2025-05-15 Thread Ilia Kuklin via lldb-commits
@@ -111,7 +111,42 @@ ASTNodeUP DILParser::ParseUnaryExpression() { llvm_unreachable("invalid token kind"); } } - return ParsePrimaryExpression(); + return ParsePostfixExpression(); +} + +// Parse a postfix_expression. +// +// postfix_expression: +//primary_ex

[Lldb-commits] [lldb] [LLDB] Add array subscription and integer parsing to DIL (PR #138551)

2025-05-15 Thread Ilia Kuklin via lldb-commits
kuilpd wrote: I think I addressed everything I could, please take a look again. https://github.com/llvm/llvm-project/pull/138551 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [LLDB] Add array subscription and integer parsing to DIL (PR #138551)

2025-05-15 Thread Ilia Kuklin via lldb-commits
@@ -272,4 +272,67 @@ Interpreter::Visit(const UnaryOpNode *node) { m_expr, "invalid ast: unexpected binary operator", node->GetLocation()); } +llvm::Expected +Interpreter::Visit(const ArraySubscriptNode *node) { + auto lhs_or_err = Evaluate(node->GetBase()); + if (!lhs

[Lldb-commits] [lldb] [LLDB] Add array subscription and integer parsing to DIL (PR #138551)

2025-05-15 Thread Ilia Kuklin via lldb-commits
@@ -272,4 +272,67 @@ Interpreter::Visit(const UnaryOpNode *node) { m_expr, "invalid ast: unexpected binary operator", node->GetLocation()); } +llvm::Expected +Interpreter::Visit(const ArraySubscriptNode *node) { + auto lhs_or_err = Evaluate(node->GetBase()); + if (!lhs

[Lldb-commits] [lldb] [LLDB] Add array subscription and integer parsing to DIL (PR #138551)

2025-05-15 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd updated https://github.com/llvm/llvm-project/pull/138551 Rate limit · GitHub body { background-color: #f6f8fa; color: #24292e; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-se

[Lldb-commits] [lldb] [lldb] Restore ObjC incomplete type dereferencing fix (PR #139567)

2025-05-12 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd closed https://github.com/llvm/llvm-project/pull/139567 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [lldb] Restore ObjC incomplete type dereferencing fix (PR #139567)

2025-05-12 Thread Ilia Kuklin via lldb-commits
kuilpd wrote: Thank you! https://github.com/llvm/llvm-project/pull/139567 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [lldb] Restore ObjC incomplete type dereferencing fix (PR #139567)

2025-05-12 Thread Ilia Kuklin via lldb-commits
https://github.com/kuilpd ready_for_review https://github.com/llvm/llvm-project/pull/139567 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

  1   2   3   >