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

Unified Diff: src/ic/accessor-assembler.h

Issue 2733563002: [ic] Inline LoadIC into LdaNamedProperty bytecode handler (Closed)
Patch Set: Remove LoadFeedbackSlot Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/code-stub-assembler.cc ('k') | src/ic/accessor-assembler.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/ic/accessor-assembler.h
diff --git a/src/ic/accessor-assembler.h b/src/ic/accessor-assembler.h
index e7505f7d3c6a87050f351e1299c83d1f2e1b22eb..e8827050283de0d517c9a804f315b9f28aa82f70 100644
--- a/src/ic/accessor-assembler.h
+++ b/src/ic/accessor-assembler.h
@@ -24,6 +24,7 @@ class AccessorAssembler : public CodeStubAssembler {
: CodeStubAssembler(state) {}
void GenerateLoadIC();
+ void GenerateLoadIC_Noninlined();
void GenerateLoadIC_Uninitialized();
void GenerateLoadField();
void GenerateLoadICTrampoline();
@@ -76,6 +77,10 @@ class AccessorAssembler : public CodeStubAssembler {
ExitPoint* exit_point, Label* miss);
void LoadGlobalIC_MissCase(const LoadICParameters* p, ExitPoint* exit_point);
+ // Specialized LoadIC for inlined bytecode handler, hand-tuned to omit frame
+ // construction on common paths.
+ void LoadIC_BytecodeHandler(const LoadICParameters* p, ExitPoint* exit_point);
+
protected:
struct StoreICParameters : public LoadICParameters {
StoreICParameters(Node* context, Node* receiver, Node* name, Node* value,
@@ -94,7 +99,13 @@ class AccessorAssembler : public CodeStubAssembler {
private:
// Stub generation entry points.
+ // LoadIC contains the full LoadIC logic, while LoadIC_Noninlined contains
+ // logic not inlined into Ignition bytecode handlers.
void LoadIC(const LoadICParameters* p);
+ void LoadIC_Noninlined(const LoadICParameters* p, Node* receiver_map,
+ Node* feedback, Variable* var_handler,
+ Label* if_handler, Label* miss, ExitPoint* exit_point);
+
void LoadIC_Uninitialized(const LoadICParameters* p);
void LoadICProtoArray(const LoadICParameters* p, Node* handler,
bool throw_reference_error_if_nonexistent);
@@ -123,7 +134,7 @@ class AccessorAssembler : public CodeStubAssembler {
void HandleLoadICHandlerCase(
const LoadICParameters* p, Node* handler, Label* miss,
- ElementSupport support_elements = kOnlyProperties);
+ ExitPoint* exit_point, ElementSupport support_elements = kOnlyProperties);
void HandleLoadICSmiHandlerCase(const LoadICParameters* p, Node* holder,
Node* smi_handler, Label* miss,
« no previous file with comments | « src/code-stub-assembler.cc ('k') | src/ic/accessor-assembler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698