d0f064d4e5ccef341ecbd6a462bbff5f085a3f77 |
|
20-Jun-2013 |
Sean Callanan <scallanan@apple.com> |
Fixed a problem with materialization and dematerialization of registers that caused conditional breakpoint expressions not to work properly. Also added a testcase. <rdar://problem/14129252> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@184451 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Expression/Materializer.h
|
884288bcb6824452a3c64eb772c0976501acc47a |
|
03-Jun-2013 |
Matt Kopec <Matt.Kopec@intel.com> |
Fix various build warnings. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@183140 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Expression/Materializer.h
|
102b2c2681c9a830afe25bfea35557421905e42c |
|
19-Apr-2013 |
Greg Clayton <gclayton@apple.com> |
After discussing with Chris Lattner, we require C++11, so lets get rid of the macros and just use C++11. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@179805 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Expression/Materializer.h
|
0f0551e67d8ea8d63ace5456f7d42d951827b017 |
|
19-Apr-2013 |
Sean Callanan <scallanan@apple.com> |
This commit changes the way LLDB executes user expressions. Previously, ClangUserExpression assumed that if there was a constant result for an expression then it could be determined during parsing. In particular, the IRInterpreter ran while parser state (in particular, ClangExpressionDeclMap) was present. This approach is flawed, because the IRInterpreter actually is capable of using external variables, and hence the result might be different each run. Until now, we papered over this flaw by re-parsing the expression each time we ran it. I have rewritten the IRInterpreter to be completely independent of the ClangExpressionDeclMap. Instead of special-casing external variable lookup, which ties the IRInterpreter closely to LLDB, we now interpret the exact same IR that the JIT would see. This IR assumes that materialization has occurred; hence the recent implementation of the Materializer, which does not require parser state (in the form of ClangExpressionDeclMap) to be present. Materialization, interpretation, and dematerialization are now all independent of parsing. This means that in theory we can parse expressions once and run them many times. I have three outstanding tasks before shutting this down: - First, I will ensure that all of this works with core files. Core files have a Process but do not allow allocating memory, which currently confuses materialization. - Second, I will make expression breakpoint conditions remember their ClangUserExpression and re-use it. - Third, I will tear out all the redundant code (for example, materialization logic in ClangExpressionDeclMap) that is no longer used. While implementing this fix, I also found a bug in IRForTarget's handling of floating-point constants. This should be fixed. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@179801 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Expression/Materializer.h
|
0b10ef61ea60e24fe7736cd98bd5fb45efe9c816 |
|
18-Apr-2013 |
Greg Clayton <gclayton@apple.com> |
Missed some cases when switching over to using our STD_UNIQUE_PTR macros. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@179796 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Expression/Materializer.h
|
a6686e36cd56843e594139324884585fb47b918b |
|
17-Apr-2013 |
Sean Callanan <scallanan@apple.com> |
Flipped the big switch: LLDB now uses the new Materializer for all expressions that need to run in the target. This includes the following changes: - Removed a bunch of (de-)materialization code from ClangExpressionDeclMap and assumed the presence of a Materializer where we previously had a fallback. - Ensured that an IRMemoryMap is passed into ClangExpressionDeclMap::Materialize(). - Fixed object ownership on LLVMContext; it is now owned by the IRExecutionUnit, since the Module and the ExecutionEngine both depend on its existence. - Fixed a few bugs in IRMemoryMap and the Materializer that showed up during testing. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@179649 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Expression/Materializer.h
|
76f9879afa1508febd5538a63a3fad7f01c6c64f |
|
16-Apr-2013 |
Sean Callanan <scallanan@apple.com> |
Added logging to each entity in the Materializer to make debugging easier when things go wrong. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@179576 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Expression/Materializer.h
|
cecfa8fca811579fdee0ad5d5354e33e18e9bdb7 |
|
15-Apr-2013 |
Sean Callanan <scallanan@apple.com> |
Removed a duplicate copy of the contents of Materializer.h that somehow crept in, maybe during a patch operation. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@179543 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Expression/Materializer.h
|
f4b59480e8d1056b1638141a6a627b252f657db0 |
|
12-Apr-2013 |
Sean Callanan <scallanan@apple.com> |
Replicated the materialization logic for persistent variables in the Materializer. We don't use this code yet, but will soon once the other materializers are online. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@179390 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Expression/Materializer.h
|
ce66f96d4329a5664561ceb6f1fc571ed497bcef |
|
11-Apr-2013 |
Sean Callanan <scallanan@apple.com> |
Hand over the job of laying out the argument structure to the Materializer. Materialization is still done by the ClangExpressionDeclMap; this will be the next thing to move. Also fixed a layout bug that this uncovered. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@179318 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Expression/Materializer.h
|
3b16eb9d424068446fea9cd0e0fe5e7d435f5b6e |
|
11-Apr-2013 |
Sean Callanan <scallanan@apple.com> |
Added a Materializer class that contains information about each variable that needs to be materialized for an expression to work. The next step is to migrate all materialization code from ClangExpressionDeclMap to Materializer, and to use it for variable materialization. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@179245 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Expression/Materializer.h
|