#include <map>
#include <vector>
-// Other libraries and framework includes
-#include "llvm/IR/LegacyPassManager.h"
-
// Project includes
#include "lldb/Expression/UserExpression.h"
//----------------------------------------------------------------------
class LLVMUserExpression : public UserExpression
{
-public:
- // The IRPasses struct is filled in by a runtime after an expression is compiled and can be used to to run
- // fixups/analysis passes as required. EarlyPasses are run on the generated module before lldb runs its own IR
- // fixups and inserts instrumentation code/pointer checks. LatePasses are run after the module has been processed by
- // llvm, before the module is assembled and run in the ThreadPlan.
- struct IRPasses
- {
- IRPasses() : EarlyPasses(nullptr), LatePasses(nullptr){};
- std::shared_ptr<llvm::legacy::PassManager> EarlyPasses;
- std::shared_ptr<llvm::legacy::PassManager> LatePasses;
- };
-
+ public:
LLVMUserExpression(ExecutionContextScope &exe_scope, const char *expr, const char *expr_prefix,
lldb::LanguageType language, ResultType desired_type,
const EvaluateExpressionOptions &options);