<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bcm5719-llvm/lldb/source/Plugins/ExpressionParser, branch meklort-10.0.1</title>
<subtitle>Project Ortega BCM5719 LLVM</subtitle>
<id>https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.1</id>
<link rel='self' href='https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.1'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/'/>
<updated>2020-01-14T13:59:56+00:00</updated>
<entry>
<title>Expression eval lookup speedup by not returning methods in ManualDWARFIndex::GetFunctions</title>
<updated>2020-01-14T13:59:56+00:00</updated>
<author>
<name>Levon Ter-Grigoryan</name>
<email>patriosthegreat@protonmail.ch</email>
</author>
<published>2020-01-14T13:33:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=a705cf1acbe94498f7fcca4e89be6d4820271227'/>
<id>urn:sha1:a705cf1acbe94498f7fcca4e89be6d4820271227</id>
<content type='text'>
Summary:
This change is connected with
https://reviews.llvm.org/D69843

In large codebases, we sometimes see Module::FindFunctions (when called from
ClangExpressionDeclMap::FindExternalVisibleDecls) returning huge amounts of
functions.

In current fix I trying to return only function_fullnames from ManualDWARFIndex::GetFunctions when eFunctionNameTypeFull is passed as argument.

Reviewers: labath, jarin, aprantl

Reviewed By: labath

Subscribers: shafik, clayborg, teemperor, arphaman, lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D70846
</content>
</entry>
<entry>
<title>[lldb/Expression] Improve interpreter error message with a non-running target</title>
<updated>2020-01-14T12:06:58+00:00</updated>
<author>
<name>Med Ismail Bennani</name>
<email>medismail.bennani@gmail.com</email>
</author>
<published>2020-01-14T11:12:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=877723b7ce813d25fc4a358b7d2cb90468733a72'/>
<id>urn:sha1:877723b7ce813d25fc4a358b7d2cb90468733a72</id>
<content type='text'>
When trying to interpret an expression with a function call, if the
process hasn't been launched, the expression fails to be interpreted
and the user gets the following  error message:

```error: Can't run the expression locally```

This message doesn't explain why the expression failed to be
interpreted, that's why this patch improves the error message that is
displayed when trying to run an expression while no process is running.

rdar://11991708

Differential Revision: https://reviews.llvm.org/D72510

Signed-off-by: Med Ismail Bennani &lt;medismail.bennani@gmail.com&gt;
</content>
</entry>
<entry>
<title>[lldb] Remove FieldDecl stealing hack by rerouting indirect imports to the original AST</title>
<updated>2020-01-10T18:18:07+00:00</updated>
<author>
<name>Raphael Isemann</name>
<email>teemperor@gmail.com</email>
</author>
<published>2020-01-10T18:17:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=ef239972614cc3c67006f9c298fcfa841818dc77'/>
<id>urn:sha1:ef239972614cc3c67006f9c298fcfa841818dc77</id>
<content type='text'>
Summary:
This is a port of D67803 that was about preventing indirect importing to our scratch context when evaluating expressions.

D67803 already has a pretty long explanation of how this works, but the idea is that instead
of importing declarations indirectly over the expression AST (i.e., Debug info AST -&gt; Expression AST -&gt; scratch AST)
we instead directly import the declaration from the debug info AST to the scratch AST.

The difference from D67803 is that here we have to do this in the ASTImporterDelegate (which is our ASTImporter
subclass we use in LLDB). It has the same information as the ExternalASTMerger in D67803 as it can access the
ClangASTImporter (which also keeps track of where Decls originally came from).

With this patch we can also delete the FieldDecl stealing hack in the ClangASTSource (this was only necessary as the
indirect imports caused the creation of duplicate Record declarations but we needed the fields in the Record decl
we originally found in the scratch ASTContext).

This also fixes the current gmodules failures where we fail to find std::vector fields after an indirect import
over the expression AST (where it seems even our FieldDecl stealing hack can't save us from).

Reviewers: shafik, aprantl

Reviewed By: shafik

Subscribers: JDevlieghere, lldb-commits, mib, labath, friss

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D72507
</content>
</entry>
<entry>
<title>Add missing nullptr checks.</title>
<updated>2020-01-10T16:52:46+00:00</updated>
<author>
<name>Adrian Prantl</name>
<email>aprantl@apple.com</email>
</author>
<published>2020-01-08T22:18:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=e9331a56fead1823d528d6412828fb9e16fd62ff'/>
<id>urn:sha1:e9331a56fead1823d528d6412828fb9e16fd62ff</id>
<content type='text'>
GetPersistentExpressionStateForLanguage() can return a nullptr if it
cannot construct a typesystem. This patch adds missing nullptr checks
at all uses.

Inspired by rdar://problem/58317195

Differential Revision: https://reviews.llvm.org/D72413
</content>
</entry>
<entry>
<title>[lldb][NFC] Use static_cast instead of reinterpret_cast where possible</title>
<updated>2020-01-07T12:03:56+00:00</updated>
<author>
<name>Raphael Isemann</name>
<email>teemperor@gmail.com</email>
</author>
<published>2020-01-07T11:13:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=65fdb34219f33b2871a532a38814ac4ebea10abc'/>
<id>urn:sha1:65fdb34219f33b2871a532a38814ac4ebea10abc</id>
<content type='text'>
Summary: There are a few places in LLDB where we do a `reinterpret_cast` for conversions that we could also do with `static_cast`. This patch moves all this code to `static_cast`.

Reviewers: shafik, JDevlieghere, labath

Reviewed By: labath

Subscribers: arphaman, usaxena95, lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D72161
</content>
</entry>
<entry>
<title>[lldb][NFC] Remove forward declaration for non-existent type clang::Action and delete references to it</title>
<updated>2020-01-03T10:24:16+00:00</updated>
<author>
<name>Raphael Isemann</name>
<email>teemperor@gmail.com</email>
</author>
<published>2020-01-03T10:24:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=2e033244417c1b9947ee28795568bc33a1efe781'/>
<id>urn:sha1:2e033244417c1b9947ee28795568bc33a1efe781</id>
<content type='text'>
There is no clang::Action anymore so our forward decl for it and the obsolete pointer in the
ASTStructExtractor can both go (that code anyway didn't do anything).
</content>
</entry>
<entry>
<title>[lldb][NFC] Create type-safe function for creating a CompilerType from a QualType</title>
<updated>2020-01-02T10:54:45+00:00</updated>
<author>
<name>Raphael Isemann</name>
<email>teemperor@gmail.com</email>
</author>
<published>2019-12-30T20:20:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=fe8e25a48a2a0f8f508499ba950181dba3d600b0'/>
<id>urn:sha1:fe8e25a48a2a0f8f508499ba950181dba3d600b0</id>
<content type='text'>
LLDB frequently converts QualType to CompilerType. This is currently done like this:
    result = CompilerType(this, qual_type_var.getAsOpaquePtr())
There are a few shortcomings in this current approach:
  1. CompilerType's constructor takes a void* pointer so it isn't type safe.
  2. We can't add any sanity checks to the CompilerType constructor (e.g. that the type
     actually belongs to the passed ClangASTContext) without expanding the TypeSystem API.
  3. The logic for converting QualType-&gt;CompilerType is spread out over all of LLDB so
     changing it is difficult (e.g., what if we want to just pass the type ptr and not the
     1type_ptr | qual_flags1 to CompilerType).

This patch adds a `ClangASTContext::GetType` function similar to the other GetTypeForDecl
functions that does this conversion in a type safe way.

It also adds a sanity check for Tag-based types that the type actually belongs to the
current ClangASTContext (Types don't seem to know their ASTContext, so we have to
workaround by looking at the decl for the underlying TagDecl. This doesn't cover all types
we construct but it's better than no sanity check).
</content>
</entry>
<entry>
<title>[lldb][NFC] Simplify CompilerType constructors/destructors and fix unused variable warning</title>
<updated>2020-01-01T21:56:16+00:00</updated>
<author>
<name>Raphael Isemann</name>
<email>teemperor@gmail.com</email>
</author>
<published>2020-01-01T21:42:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=8dbe2f02c6d300e7222b5064b28c4d82a031647d'/>
<id>urn:sha1:8dbe2f02c6d300e7222b5064b28c4d82a031647d</id>
<content type='text'>
CompilerType has no virtual functions and no statements in its constructors,
so we can simplify this code. This also allows Clang to emit unused variable warnings
for CompilerType, so I also removed one unused variable that otherwise causes -Werror
builds to fail.
</content>
</entry>
<entry>
<title>[lldb][NFC] Delete static versions of ClangASTContext::CreateFunctionType</title>
<updated>2019-12-29T19:27:05+00:00</updated>
<author>
<name>Raphael Isemann</name>
<email>teemperor@gmail.com</email>
</author>
<published>2019-12-29T19:10:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=0007f9da7c0c780e2466759c1e53b1109a54e400'/>
<id>urn:sha1:0007f9da7c0c780e2466759c1e53b1109a54e400</id>
<content type='text'>
We can always call the member function version of this function.
</content>
</entry>
<entry>
<title>[lldb][NFC] Remove GetASTContext call in ClangPersistentVariables</title>
<updated>2019-12-28T21:45:23+00:00</updated>
<author>
<name>Raphael Isemann</name>
<email>teemperor@gmail.com</email>
</author>
<published>2019-12-28T21:00:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=36fb199ecaa5c75bd339f530277cd6d1f32033b3'/>
<id>urn:sha1:36fb199ecaa5c75bd339f530277cd6d1f32033b3</id>
<content type='text'>
We try to build a CompilerType from the persistent decls so we need
a ClangASTContext. With this patch the ClangPersistentVariables store
the associated ClangASTContext of the persistent decls (which is
always the scratch ClangASTContext) and no longer call GetASTContext
to map back from clang::ASTContext to ClangASTContext.
</content>
</entry>
</feed>
