Index: src/compiler/instruction.h |
diff --git a/src/compiler/instruction.h b/src/compiler/instruction.h |
index c6a3d6df0c6bae04f664d43fe5df9704fe4b8410..687b1b8761312c5ee50ea3804337bfd63d455a36 100644 |
--- a/src/compiler/instruction.h |
+++ b/src/compiler/instruction.h |
@@ -10,11 +10,13 @@ |
#include <map> |
#include <set> |
+#include "src/base/compiler-specific.h" |
#include "src/compiler/common-operator.h" |
#include "src/compiler/frame.h" |
#include "src/compiler/instruction-codes.h" |
#include "src/compiler/opcodes.h" |
#include "src/compiler/source-position.h" |
+#include "src/globals.h" |
#include "src/macro-assembler.h" |
#include "src/register-configuration.h" |
#include "src/zone/zone-allocator.h" |
@@ -516,8 +518,8 @@ class LocationOperand : public InstructionOperand { |
class IndexField : public BitField64<int32_t, 35, 29> {}; |
}; |
- |
-class ExplicitOperand : public LocationOperand { |
+class V8_EXPORT_PRIVATE ExplicitOperand |
+ : public NON_EXPORTED_BASE(LocationOperand) { |
public: |
ExplicitOperand(LocationKind kind, MachineRepresentation rep, int index); |
@@ -792,7 +794,7 @@ std::ostream& operator<<(std::ostream& os, const ReferenceMap& pm); |
class InstructionBlock; |
-class Instruction final { |
+class V8_EXPORT_PRIVATE Instruction final { |
public: |
size_t OutputCount() const { return OutputCountField::decode(bit_field_); } |
const InstructionOperand* OutputAt(size_t i) const { |
@@ -1019,8 +1021,7 @@ class RpoNumber final { |
std::ostream& operator<<(std::ostream&, const RpoNumber&); |
- |
-class Constant final { |
+class V8_EXPORT_PRIVATE Constant final { |
public: |
enum Type { |
kInt32, |
@@ -1211,7 +1212,8 @@ class DeoptimizationEntry final { |
typedef ZoneVector<DeoptimizationEntry> DeoptimizationVector; |
-class PhiInstruction final : public ZoneObject { |
+class V8_EXPORT_PRIVATE PhiInstruction final |
+ : public NON_EXPORTED_BASE(ZoneObject) { |
public: |
typedef ZoneVector<InstructionOperand> Inputs; |
@@ -1236,7 +1238,8 @@ class PhiInstruction final : public ZoneObject { |
// Analogue of BasicBlock for Instructions instead of Nodes. |
-class InstructionBlock final : public ZoneObject { |
+class V8_EXPORT_PRIVATE InstructionBlock final |
+ : public NON_EXPORTED_BASE(ZoneObject) { |
public: |
InstructionBlock(Zone* zone, RpoNumber rpo_number, RpoNumber loop_header, |
RpoNumber loop_end, bool deferred, bool handler); |
@@ -1343,7 +1346,8 @@ struct PrintableInstructionSequence; |
// Represents architecture-specific generated code before, during, and after |
// register allocation. |
-class InstructionSequence final : public ZoneObject { |
+class V8_EXPORT_PRIVATE InstructionSequence final |
+ : public NON_EXPORTED_BASE(ZoneObject) { |
public: |
static InstructionBlocks* InstructionBlocksFor(Zone* zone, |
const Schedule* schedule); |
@@ -1501,8 +1505,8 @@ class InstructionSequence final : public ZoneObject { |
void ValidateSSA() const; |
private: |
- friend std::ostream& operator<<(std::ostream& os, |
- const PrintableInstructionSequence& code); |
+ friend V8_EXPORT_PRIVATE std::ostream& operator<<( |
+ std::ostream& os, const PrintableInstructionSequence& code); |
typedef ZoneMap<const Instruction*, SourcePosition> SourcePositionMap; |
@@ -1530,9 +1534,8 @@ struct PrintableInstructionSequence { |
const InstructionSequence* sequence_; |
}; |
- |
-std::ostream& operator<<(std::ostream& os, |
- const PrintableInstructionSequence& code); |
+V8_EXPORT_PRIVATE std::ostream& operator<<( |
+ std::ostream& os, const PrintableInstructionSequence& code); |
} // namespace compiler |
} // namespace internal |