Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(237)

Side by Side Diff: src/compiler/js-type-feedback-lowering.h

Issue 1216593003: [turbofan] Optimize string "length" property access based on types. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: REBASE Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/compiler/access-builder.cc ('k') | src/compiler/js-type-feedback-lowering.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef V8_COMPILER_JS_TYPE_FEEDBACK_LOWERING_H_
6 #define V8_COMPILER_JS_TYPE_FEEDBACK_LOWERING_H_
7
8 #include "src/base/flags.h"
9 #include "src/compiler/graph-reducer.h"
10 #include "src/compiler/simplified-operator.h"
11
12 namespace v8 {
13 namespace internal {
14 namespace compiler {
15
16 // Forward declarations.
17 class CommonOperatorBuilder;
18 class JSGraph;
19 class MachineOperatorBuilder;
20
21
22 // Lowers JS-level operators to simplified operators based on type feedback.
23 class JSTypeFeedbackLowering final : public AdvancedReducer {
24 public:
25 // Various configuration flags to control the operation of this lowering.
26 enum Flag {
27 kNoFlags = 0,
28 kDeoptimizationEnabled = 1 << 0,
29 };
30 typedef base::Flags<Flag> Flags;
31
32 JSTypeFeedbackLowering(Editor* editor, Flags flags, JSGraph* jsgraph);
33 ~JSTypeFeedbackLowering() final {}
34
35 Reduction Reduce(Node* node) final;
36
37 private:
38 Reduction ReduceJSLoadNamed(Node* node);
39
40 Factory* factory() const;
41 Flags flags() const { return flags_; }
42 Graph* graph() const;
43 Isolate* isolate() const;
44 JSGraph* jsgraph() const { return jsgraph_; }
45 CommonOperatorBuilder* common() const;
46 MachineOperatorBuilder* machine() const;
47 SimplifiedOperatorBuilder* simplified() { return &simplified_; }
48
49 Flags const flags_;
50 JSGraph* const jsgraph_;
51 SimplifiedOperatorBuilder simplified_;
52
53 DISALLOW_COPY_AND_ASSIGN(JSTypeFeedbackLowering);
54 };
55
56 DEFINE_OPERATORS_FOR_FLAGS(JSTypeFeedbackLowering::Flags)
57
58 } // namespace compiler
59 } // namespace internal
60 } // namespace v8
61
62 #endif // V8_COMPILER_JS_TYPE_FEEDBACK_LOWERING_H_
OLDNEW
« no previous file with comments | « src/compiler/access-builder.cc ('k') | src/compiler/js-type-feedback-lowering.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698