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

Side by Side Diff: src/hydrogen-instructions.h

Issue 141583011: Kill obsolete HLoadExternalArrayPointer instruction. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 10 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 | Annotate | Revision Log
« no previous file with comments | « src/hydrogen.cc ('k') | src/ia32/lithium-codegen-ia32.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 V(InstanceOf) \ 126 V(InstanceOf) \
127 V(InstanceOfKnownGlobal) \ 127 V(InstanceOfKnownGlobal) \
128 V(InvokeFunction) \ 128 V(InvokeFunction) \
129 V(IsConstructCallAndBranch) \ 129 V(IsConstructCallAndBranch) \
130 V(IsObjectAndBranch) \ 130 V(IsObjectAndBranch) \
131 V(IsStringAndBranch) \ 131 V(IsStringAndBranch) \
132 V(IsSmiAndBranch) \ 132 V(IsSmiAndBranch) \
133 V(IsUndetectableAndBranch) \ 133 V(IsUndetectableAndBranch) \
134 V(LeaveInlined) \ 134 V(LeaveInlined) \
135 V(LoadContextSlot) \ 135 V(LoadContextSlot) \
136 V(LoadExternalArrayPointer) \
137 V(LoadFieldByIndex) \ 136 V(LoadFieldByIndex) \
138 V(LoadFunctionPrototype) \ 137 V(LoadFunctionPrototype) \
139 V(LoadGlobalCell) \ 138 V(LoadGlobalCell) \
140 V(LoadGlobalGeneric) \ 139 V(LoadGlobalGeneric) \
141 V(LoadKeyed) \ 140 V(LoadKeyed) \
142 V(LoadKeyedGeneric) \ 141 V(LoadKeyedGeneric) \
143 V(LoadNamedField) \ 142 V(LoadNamedField) \
144 V(LoadNamedGeneric) \ 143 V(LoadNamedGeneric) \
145 V(LoadRoot) \ 144 V(LoadRoot) \
146 V(MapEnumLength) \ 145 V(MapEnumLength) \
(...skipping 2582 matching lines...) Expand 10 before | Expand all | Expand 10 after
2729 // corresponding HStoreRoot instruction. 2728 // corresponding HStoreRoot instruction.
2730 SetGVNFlag(kDependsOnCalls); 2729 SetGVNFlag(kDependsOnCalls);
2731 } 2730 }
2732 2731
2733 virtual bool IsDeletable() const V8_OVERRIDE { return true; } 2732 virtual bool IsDeletable() const V8_OVERRIDE { return true; }
2734 2733
2735 const Heap::RootListIndex index_; 2734 const Heap::RootListIndex index_;
2736 }; 2735 };
2737 2736
2738 2737
2739 class HLoadExternalArrayPointer V8_FINAL : public HUnaryOperation {
2740 public:
2741 DECLARE_INSTRUCTION_FACTORY_P1(HLoadExternalArrayPointer, HValue*);
2742
2743 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE {
2744 return Representation::Tagged();
2745 }
2746
2747 virtual HType CalculateInferredType() V8_OVERRIDE {
2748 return HType::None();
2749 }
2750
2751 DECLARE_CONCRETE_INSTRUCTION(LoadExternalArrayPointer)
2752
2753 protected:
2754 virtual bool DataEquals(HValue* other) V8_OVERRIDE { return true; }
2755
2756 private:
2757 explicit HLoadExternalArrayPointer(HValue* value)
2758 : HUnaryOperation(value) {
2759 set_representation(Representation::External());
2760 // The result of this instruction is idempotent as long as its inputs don't
2761 // change. The external array of a specialized array elements object cannot
2762 // change once set, so it's no necessary to introduce any additional
2763 // dependencies on top of the inputs.
2764 SetFlag(kUseGVN);
2765 }
2766
2767 virtual bool IsDeletable() const V8_OVERRIDE { return true; }
2768 };
2769
2770
2771 class HCheckMaps V8_FINAL : public HTemplateInstruction<2> { 2738 class HCheckMaps V8_FINAL : public HTemplateInstruction<2> {
2772 public: 2739 public:
2773 static HCheckMaps* New(Zone* zone, HValue* context, HValue* value, 2740 static HCheckMaps* New(Zone* zone, HValue* context, HValue* value,
2774 Handle<Map> map, CompilationInfo* info, 2741 Handle<Map> map, CompilationInfo* info,
2775 HValue *typecheck = NULL); 2742 HValue *typecheck = NULL);
2776 static HCheckMaps* New(Zone* zone, HValue* context, 2743 static HCheckMaps* New(Zone* zone, HValue* context,
2777 HValue* value, SmallMapList* maps, 2744 HValue* value, SmallMapList* maps,
2778 HValue *typecheck = NULL) { 2745 HValue *typecheck = NULL) {
2779 HCheckMaps* check_map = new(zone) HCheckMaps(value, zone, typecheck); 2746 HCheckMaps* check_map = new(zone) HCheckMaps(value, zone, typecheck);
2780 for (int i = 0; i < maps->length(); i++) { 2747 for (int i = 0; i < maps->length(); i++) {
(...skipping 4761 matching lines...) Expand 10 before | Expand all | Expand 10 after
7542 virtual bool IsDeletable() const V8_OVERRIDE { return true; } 7509 virtual bool IsDeletable() const V8_OVERRIDE { return true; }
7543 }; 7510 };
7544 7511
7545 7512
7546 #undef DECLARE_INSTRUCTION 7513 #undef DECLARE_INSTRUCTION
7547 #undef DECLARE_CONCRETE_INSTRUCTION 7514 #undef DECLARE_CONCRETE_INSTRUCTION
7548 7515
7549 } } // namespace v8::internal 7516 } } // namespace v8::internal
7550 7517
7551 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ 7518 #endif // V8_HYDROGEN_INSTRUCTIONS_H_
OLDNEW
« no previous file with comments | « src/hydrogen.cc ('k') | src/ia32/lithium-codegen-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698