summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/bytecode/BytecodeLivenessAnalysis.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/JavaScriptCore/bytecode/BytecodeLivenessAnalysis.h')
-rw-r--r--Source/JavaScriptCore/bytecode/BytecodeLivenessAnalysis.h18
1 files changed, 8 insertions, 10 deletions
diff --git a/Source/JavaScriptCore/bytecode/BytecodeLivenessAnalysis.h b/Source/JavaScriptCore/bytecode/BytecodeLivenessAnalysis.h
index ece16f21f..349912175 100644
--- a/Source/JavaScriptCore/bytecode/BytecodeLivenessAnalysis.h
+++ b/Source/JavaScriptCore/bytecode/BytecodeLivenessAnalysis.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013, 2015 Apple Inc. All rights reserved.
+ * Copyright (C) 2013 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -33,13 +33,10 @@
namespace JSC {
-class BytecodeKills;
class CodeBlock;
class FullBytecodeLiveness;
class BytecodeLivenessAnalysis {
- WTF_MAKE_FAST_ALLOCATED;
- WTF_MAKE_NONCOPYABLE(BytecodeLivenessAnalysis);
public:
BytecodeLivenessAnalysis(CodeBlock*);
@@ -47,22 +44,23 @@ public:
FastBitVector getLivenessInfoAtBytecodeOffset(unsigned bytecodeOffset);
void computeFullLiveness(FullBytecodeLiveness& result);
- void computeKills(BytecodeKills& result);
private:
void compute();
void runLivenessFixpoint();
void dumpResults();
- void getLivenessInfoAtBytecodeOffset(unsigned bytecodeOffset, FastBitVector&);
+ void getLivenessInfoForNonCapturedVarsAtBytecodeOffset(unsigned bytecodeOffset, FastBitVector&);
CodeBlock* m_codeBlock;
- Vector<std::unique_ptr<BytecodeBasicBlock>> m_basicBlocks;
+ Vector<RefPtr<BytecodeBasicBlock> > m_basicBlocks;
};
-inline bool operandIsAlwaysLive(int operand);
-inline bool operandThatIsNotAlwaysLiveIsLive(const FastBitVector& out, int operand);
-inline bool operandIsLive(const FastBitVector& out, int operand);
+inline bool operandIsAlwaysLive(CodeBlock*, int operand);
+inline bool operandThatIsNotAlwaysLiveIsLive(CodeBlock*, const FastBitVector& out, int operand);
+inline bool operandIsLive(CodeBlock*, const FastBitVector& out, int operand);
+
+FastBitVector getLivenessInfo(CodeBlock*, const FastBitVector& out);
} // namespace JSC