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

Unified Diff: src/compiler/instruction.h

Issue 1081053002: [turbofan] cleanup PointerMap (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: renames Created 5 years, 8 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/compiler/code-generator.cc ('k') | src/compiler/instruction.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/compiler/instruction.h
diff --git a/src/compiler/instruction.h b/src/compiler/instruction.h
index 36b445eb3d58e428ac9a8ce701b69643ed87448d..fc7b033a6dd787d1cabf99ffaba13c1d8bb431c7 100644
--- a/src/compiler/instruction.h
+++ b/src/compiler/instruction.h
@@ -518,19 +518,13 @@ struct PrintableParallelMove {
std::ostream& operator<<(std::ostream& os, const PrintableParallelMove& pm);
-class PointerMap FINAL : public ZoneObject {
+class ReferenceMap FINAL : public ZoneObject {
public:
- explicit PointerMap(Zone* zone)
- : pointer_operands_(8, zone),
- untagged_operands_(0, zone),
- instruction_position_(-1) {}
-
- const ZoneList<InstructionOperand*>* GetNormalizedOperands() {
- for (int i = 0; i < untagged_operands_.length(); ++i) {
- RemovePointer(untagged_operands_[i]);
- }
- untagged_operands_.Clear();
- return &pointer_operands_;
+ explicit ReferenceMap(Zone* zone)
+ : reference_operands_(8, zone), instruction_position_(-1) {}
+
+ const ZoneVector<InstructionOperand>& reference_operands() const {
+ return reference_operands_;
}
int instruction_position() const { return instruction_position_; }
@@ -539,21 +533,17 @@ class PointerMap FINAL : public ZoneObject {
instruction_position_ = pos;
}
- void RecordPointer(InstructionOperand* op, Zone* zone);
- void RemovePointer(InstructionOperand* op);
- void RecordUntagged(InstructionOperand* op, Zone* zone);
+ void RecordReference(const InstructionOperand& op);
private:
- friend std::ostream& operator<<(std::ostream& os, const PointerMap& pm);
+ friend std::ostream& operator<<(std::ostream& os, const ReferenceMap& pm);
- ZoneList<InstructionOperand*> pointer_operands_;
- ZoneList<InstructionOperand*> untagged_operands_;
+ ZoneVector<InstructionOperand> reference_operands_;
int instruction_position_;
};
-std::ostream& operator<<(std::ostream& os, const PointerMap& pm);
+std::ostream& operator<<(std::ostream& os, const ReferenceMap& pm);
-// TODO(titzer): s/PointerMap/ReferenceMap/
class Instruction {
public:
size_t OutputCount() const { return OutputCountField::decode(bit_field_); }
@@ -627,8 +617,8 @@ class Instruction {
return this;
}
bool IsCall() const { return IsCallField::decode(bit_field_); }
- bool NeedsPointerMap() const { return IsCall(); }
- bool HasPointerMap() const { return pointer_map_ != NULL; }
+ bool NeedsReferenceMap() const { return IsCall(); }
+ bool HasReferenceMap() const { return reference_map_ != NULL; }
bool IsSourcePosition() const {
return opcode() == kSourcePositionInstruction;
@@ -637,18 +627,18 @@ class Instruction {
bool ClobbersRegisters() const { return IsCall(); }
bool ClobbersTemps() const { return IsCall(); }
bool ClobbersDoubleRegisters() const { return IsCall(); }
- PointerMap* pointer_map() const { return pointer_map_; }
+ ReferenceMap* reference_map() const { return reference_map_; }
- void set_pointer_map(PointerMap* map) {
- DCHECK(NeedsPointerMap());
- DCHECK(!pointer_map_);
- pointer_map_ = map;
+ void set_reference_map(ReferenceMap* map) {
+ DCHECK(NeedsReferenceMap());
+ DCHECK(!reference_map_);
+ reference_map_ = map;
}
void OverwriteWithNop() {
opcode_ = ArchOpcodeField::encode(kArchNop);
bit_field_ = 0;
- pointer_map_ = NULL;
+ reference_map_ = NULL;
}
bool IsNop() const {
@@ -700,7 +690,7 @@ class Instruction {
InstructionCode opcode_;
uint32_t bit_field_;
ParallelMove* parallel_moves_[2];
- PointerMap* pointer_map_;
+ ReferenceMap* reference_map_;
InstructionOperand operands_[1];
private:
@@ -987,7 +977,7 @@ typedef std::map<int, Constant, std::less<int>,
zone_allocator<std::pair<int, Constant> > > ConstantMap;
typedef ZoneDeque<Instruction*> InstructionDeque;
-typedef ZoneDeque<PointerMap*> PointerMapDeque;
+typedef ZoneDeque<ReferenceMap*> ReferenceMapDeque;
typedef ZoneVector<FrameStateDescriptor*> DeoptimizationVector;
typedef ZoneVector<InstructionBlock*> InstructionBlocks;
@@ -1053,7 +1043,7 @@ class InstructionSequence FINAL : public ZoneObject {
}
Isolate* isolate() const { return isolate_; }
- const PointerMapDeque* pointer_maps() const { return &pointer_maps_; }
+ const ReferenceMapDeque* reference_maps() const { return &reference_maps_; }
Zone* zone() const { return zone_; }
// Used by the instruction selector while adding instructions.
@@ -1133,7 +1123,7 @@ class InstructionSequence FINAL : public ZoneObject {
Immediates immediates_;
InstructionDeque instructions_;
int next_virtual_register_;
- PointerMapDeque pointer_maps_;
+ ReferenceMapDeque reference_maps_;
VirtualRegisterSet doubles_;
VirtualRegisterSet references_;
DeoptimizationVector deoptimization_entries_;
« no previous file with comments | « src/compiler/code-generator.cc ('k') | src/compiler/instruction.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698