summaryrefslogtreecommitdiff
path: root/deps/v8/src/compiler/pipeline.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/compiler/pipeline.h')
-rw-r--r--deps/v8/src/compiler/pipeline.h21
1 files changed, 13 insertions, 8 deletions
diff --git a/deps/v8/src/compiler/pipeline.h b/deps/v8/src/compiler/pipeline.h
index af94018f07..edb8191862 100644
--- a/deps/v8/src/compiler/pipeline.h
+++ b/deps/v8/src/compiler/pipeline.h
@@ -7,11 +7,12 @@
// Clients of this interface shouldn't depend on lots of compiler internals.
// Do not include anything from src/compiler here!
-#include "src/compiler.h"
+#include "src/objects.h"
namespace v8 {
namespace internal {
+class CompilationInfo;
class RegisterConfiguration;
namespace compiler {
@@ -35,7 +36,7 @@ class Pipeline {
static Handle<Code> GenerateCodeForCodeStub(Isolate* isolate,
CallDescriptor* call_descriptor,
Graph* graph, Schedule* schedule,
- Code::Kind kind,
+ Code::Flags flags,
const char* debug_name);
// Run the pipeline on a machine graph and generate code. If {schedule} is
@@ -57,23 +58,27 @@ class Pipeline {
Schedule* schedule = nullptr);
private:
- CompilationInfo* info_;
- PipelineData* data_;
-
// Helpers for executing pipeline phases.
template <typename Phase>
void Run();
template <typename Phase, typename Arg0>
void Run(Arg0 arg_0);
-
- CompilationInfo* info() const { return info_; }
- Isolate* isolate() { return info_->isolate(); }
+ template <typename Phase, typename Arg0, typename Arg1>
+ void Run(Arg0 arg_0, Arg1 arg_1);
void BeginPhaseKind(const char* phase_kind);
void RunPrintAndVerify(const char* phase, bool untyped = false);
Handle<Code> ScheduleAndGenerateCode(CallDescriptor* call_descriptor);
void AllocateRegisters(const RegisterConfiguration* config,
CallDescriptor* descriptor, bool run_verifier);
+
+ CompilationInfo* info() const { return info_; }
+ Isolate* isolate() const;
+
+ CompilationInfo* const info_;
+ PipelineData* data_;
+
+ DISALLOW_COPY_AND_ASSIGN(Pipeline);
};
} // namespace compiler