Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (231491 => 231492)
--- trunk/Source/_javascript_Core/ChangeLog 2018-05-08 17:44:02 UTC (rev 231491)
+++ trunk/Source/_javascript_Core/ChangeLog 2018-05-08 17:52:55 UTC (rev 231492)
@@ -1,3 +1,16 @@
+2018-05-08 Ryan Haddad <[email protected]>
+
+ Unreviewed, rolling out r231468.
+
+ Broke the CLoop build
+
+ Reverted changeset:
+
+ "InPlaceAbstractState::beginBasicBlock shouldn't have to clear
+ any abstract values"
+ https://bugs.webkit.org/show_bug.cgi?id=185365
+ https://trac.webkit.org/changeset/231468
+
2018-05-07 Daniel Bates <[email protected]>
Check X-Frame-Options and CSP frame-ancestors in network process
Modified: trunk/Source/_javascript_Core/dfg/DFGAbstractInterpreterInlines.h (231491 => 231492)
--- trunk/Source/_javascript_Core/dfg/DFGAbstractInterpreterInlines.h 2018-05-08 17:44:02 UTC (rev 231491)
+++ trunk/Source/_javascript_Core/dfg/DFGAbstractInterpreterInlines.h 2018-05-08 17:52:55 UTC (rev 231492)
@@ -3405,6 +3405,8 @@
case CheckTraps:
case LogShadowChickenPrologue:
case LogShadowChickenTail:
+ break;
+
case ProfileType:
case ProfileControlFlow:
case Phantom:
@@ -3414,10 +3416,6 @@
case CheckTypeInfoFlags:
case SuperSamplerBegin:
case SuperSamplerEnd:
- case CheckTierUpAndOSREnter:
- case LoopHint:
- case ZombieHint:
- case ExitOK:
break;
case ParseInt: {
@@ -3479,6 +3477,10 @@
break;
}
+ case CheckTierUpAndOSREnter:
+ case LoopHint:
+ case ZombieHint:
+ case ExitOK:
break;
case Unreachable:
Modified: trunk/Source/_javascript_Core/dfg/DFGAbstractValue.cpp (231491 => 231492)
--- trunk/Source/_javascript_Core/dfg/DFGAbstractValue.cpp 2018-05-08 17:44:02 UTC (rev 231491)
+++ trunk/Source/_javascript_Core/dfg/DFGAbstractValue.cpp 2018-05-08 17:52:55 UTC (rev 231492)
@@ -53,9 +53,9 @@
if (!!value && value.value().isCell()) {
Structure* structure = value.structure();
StructureRegistrationResult result;
- RegisteredStructure registeredStructure = graph.registerStructure(structure, result);
+ RegisteredStructure RegisteredStructure = graph.registerStructure(structure, result);
if (result == StructureRegisteredAndWatched) {
- m_structure = registeredStructure;
+ m_structure = RegisteredStructure;
if (clobberState == StructuresAreClobbered) {
m_arrayModes = ALL_ARRAY_MODES;
m_structure.clobber();
Modified: trunk/Source/_javascript_Core/dfg/DFGAbstractValue.h (231491 => 231492)
--- trunk/Source/_javascript_Core/dfg/DFGAbstractValue.h 2018-05-08 17:44:02 UTC (rev 231491)
+++ trunk/Source/_javascript_Core/dfg/DFGAbstractValue.h 2018-05-08 17:52:55 UTC (rev 231492)
@@ -251,7 +251,7 @@
return !(*this == other);
}
- ALWAYS_INLINE bool merge(const AbstractValue& other)
+ bool merge(const AbstractValue& other)
{
if (other.isClear())
return false;
Modified: trunk/Source/_javascript_Core/dfg/DFGConstantFoldingPhase.cpp (231491 => 231492)
--- trunk/Source/_javascript_Core/dfg/DFGConstantFoldingPhase.cpp 2018-05-08 17:44:02 UTC (rev 231491)
+++ trunk/Source/_javascript_Core/dfg/DFGConstantFoldingPhase.cpp 2018-05-08 17:52:55 UTC (rev 231492)
@@ -852,7 +852,7 @@
// about such things.
break;
}
- if (!node->shouldGenerate() || m_state.didClobber() || node->hasConstant() || !node->result())
+ if (!node->shouldGenerate() || m_state.didClobber() || node->hasConstant())
continue;
// Interesting fact: this freezing that we do right here may turn an fragile value into
Modified: trunk/Source/_javascript_Core/dfg/DFGGraph.h (231491 => 231492)
--- trunk/Source/_javascript_Core/dfg/DFGGraph.h 2018-05-08 17:44:02 UTC (rev 231491)
+++ trunk/Source/_javascript_Core/dfg/DFGGraph.h 2018-05-08 17:52:55 UTC (rev 231492)
@@ -84,12 +84,23 @@
thingToDo(_node, (graph).m_varArgChildren[_childIdx]); \
} \
} else { \
- for (unsigned _edgeIndex = 0; _edgeIndex < AdjacencyList::Size; _edgeIndex++) { \
- Edge& _edge = _node->children.child(_edgeIndex); \
- if (!_edge) \
- break; \
- thingToDo(_node, _edge); \
+ if (!_node->child1()) { \
+ ASSERT( \
+ !_node->child2() \
+ && !_node->child3()); \
+ break; \
} \
+ thingToDo(_node, _node->child1()); \
+ \
+ if (!_node->child2()) { \
+ ASSERT(!_node->child3()); \
+ break; \
+ } \
+ thingToDo(_node, _node->child2()); \
+ \
+ if (!_node->child3()) \
+ break; \
+ thingToDo(_node, _node->child3()); \
} \
} while (false)
@@ -708,13 +719,13 @@
}
template<typename ChildFunctor>
- ALWAYS_INLINE void doToChildrenWithNode(Node* node, const ChildFunctor& functor)
+ void doToChildrenWithNode(Node* node, const ChildFunctor& functor)
{
DFG_NODE_DO_TO_CHILDREN(*this, node, functor);
}
template<typename ChildFunctor>
- ALWAYS_INLINE void doToChildren(Node* node, const ChildFunctor& functor)
+ void doToChildren(Node* node, const ChildFunctor& functor)
{
doToChildrenWithNode(
node,
Modified: trunk/Source/_javascript_Core/dfg/DFGInPlaceAbstractState.cpp (231491 => 231492)
--- trunk/Source/_javascript_Core/dfg/DFGInPlaceAbstractState.cpp 2018-05-08 17:44:02 UTC (rev 231491)
+++ trunk/Source/_javascript_Core/dfg/DFGInPlaceAbstractState.cpp 2018-05-08 17:52:55 UTC (rev 231492)
@@ -60,6 +60,13 @@
ASSERT(basicBlock->variablesAtHead.numberOfLocals() == basicBlock->variablesAtTail.numberOfLocals());
m_abstractValues.resize();
+
+ for (size_t i = 0; i < basicBlock->size(); i++) {
+ NodeFlowProjection::forEach(
+ basicBlock->at(i), [&] (NodeFlowProjection nodeProjection) {
+ forNode(nodeProjection).clear();
+ });
+ }
AbstractValueClobberEpoch epoch = AbstractValueClobberEpoch::first(basicBlock->cfaStructureClobberStateAtHead);
m_effectEpoch = epoch;
Modified: trunk/Source/_javascript_Core/jit/JIT.cpp (231491 => 231492)
--- trunk/Source/_javascript_Core/jit/JIT.cpp 2018-05-08 17:44:02 UTC (rev 231491)
+++ trunk/Source/_javascript_Core/jit/JIT.cpp 2018-05-08 17:52:55 UTC (rev 231492)
@@ -1011,11 +1011,6 @@
return result;
}
-Seconds JIT::totalCompileTime()
-{
- return totalBaselineCompileTime + totalDFGCompileTime + totalFTLCompileTime;
-}
-
} // namespace JSC
#endif // ENABLE(JIT)
Modified: trunk/Source/_javascript_Core/jit/JIT.h (231491 => 231492)
--- trunk/Source/_javascript_Core/jit/JIT.h 2018-05-08 17:44:02 UTC (rev 231491)
+++ trunk/Source/_javascript_Core/jit/JIT.h 2018-05-08 17:52:55 UTC (rev 231492)
@@ -250,7 +250,6 @@
static int stackPointerOffsetFor(CodeBlock*);
JS_EXPORT_PRIVATE static HashMap<CString, Seconds> compileTimeStats();
- JS_EXPORT_PRIVATE static Seconds totalCompileTime();
private:
void privateCompileMainPass();
Modified: trunk/Source/_javascript_Core/jsc.cpp (231491 => 231492)
--- trunk/Source/_javascript_Core/jsc.cpp 2018-05-08 17:44:02 UTC (rev 231491)
+++ trunk/Source/_javascript_Core/jsc.cpp 2018-05-08 17:52:55 UTC (rev 231492)
@@ -347,7 +347,6 @@
static EncodedJSValue JSC_HOST_CALL functionFlashHeapAccess(ExecState*);
static EncodedJSValue JSC_HOST_CALL functionDisableRichSourceInfo(ExecState*);
static EncodedJSValue JSC_HOST_CALL functionMallocInALoop(ExecState*);
-static EncodedJSValue JSC_HOST_CALL functionTotalCompileTime(ExecState*);
struct Script {
enum class StrictMode {
@@ -607,7 +606,6 @@
addFunction(vm, "disableRichSourceInfo", functionDisableRichSourceInfo, 0);
addFunction(vm, "mallocInALoop", functionMallocInALoop, 0);
- addFunction(vm, "totalCompileTime", functionTotalCompileTime, 0);
}
void addFunction(VM& vm, JSObject* object, const char* name, NativeFunction function, unsigned arguments)
@@ -1811,11 +1809,6 @@
return JSValue::encode(jsUndefined());
}
-EncodedJSValue JSC_HOST_CALL functionTotalCompileTime(ExecState*)
-{
- return JSValue::encode(jsNumber(JIT::totalCompileTime().milliseconds()));
-}
-
template<typename ValueType>
typename std::enable_if<!std::is_fundamental<ValueType>::value>::type addOption(VM&, JSObject*, Identifier, ValueType) { }
Modified: trunk/Source/WTF/ChangeLog (231491 => 231492)
--- trunk/Source/WTF/ChangeLog 2018-05-08 17:44:02 UTC (rev 231491)
+++ trunk/Source/WTF/ChangeLog 2018-05-08 17:52:55 UTC (rev 231492)
@@ -1,3 +1,16 @@
+2018-05-08 Ryan Haddad <[email protected]>
+
+ Unreviewed, rolling out r231468.
+
+ Broke the CLoop build
+
+ Reverted changeset:
+
+ "InPlaceAbstractState::beginBasicBlock shouldn't have to clear
+ any abstract values"
+ https://bugs.webkit.org/show_bug.cgi?id=185365
+ https://trac.webkit.org/changeset/231468
+
2018-05-07 Yusuke Suzuki <[email protected]>
[JSCONLY] Enable ARMv7 DFG
Modified: trunk/Source/WTF/wtf/TinyPtrSet.h (231491 => 231492)
--- trunk/Source/WTF/wtf/TinyPtrSet.h 2018-05-08 17:44:02 UTC (rev 231491)
+++ trunk/Source/WTF/wtf/TinyPtrSet.h 2018-05-08 17:52:55 UTC (rev 231492)
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2015-2018 Apple Inc. All rights reserved.
+ * Copyright (C) 2015-2016 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -103,7 +103,7 @@
}
// Returns true if the value was added, or false if the value was already there.
- ALWAYS_INLINE bool add(T value)
+ bool add(T value)
{
ASSERT(value);
if (isThin()) {
@@ -156,7 +156,7 @@
return containsOutOfLine(value);
}
- ALWAYS_INLINE bool merge(const TinyPtrSet& other)
+ bool merge(const TinyPtrSet& other)
{
if (other.isThin()) {
if (other.singleEntry())
@@ -164,7 +164,25 @@
return false;
}
- return mergeOtherOutOfLine(other);
+ OutOfLineList* list = other.list();
+ if (list->m_length >= 2) {
+ if (isThin()) {
+ OutOfLineList* myNewList = OutOfLineList::create(
+ list->m_length + !!singleEntry());
+ if (singleEntry()) {
+ myNewList->m_length = 1;
+ myNewList->list()[0] = singleEntry();
+ }
+ set(myNewList);
+ }
+ bool changed = false;
+ for (unsigned i = 0; i < list->m_length; ++i)
+ changed |= addOutOfLine(list->list()[i]);
+ return changed;
+ }
+
+ ASSERT(list->m_length);
+ return add(list->list()[0]);
}
template<typename Functor>
@@ -361,7 +379,7 @@
static const unsigned defaultStartingSize = 4;
- NEVER_INLINE bool addOutOfLine(T value)
+ bool addOutOfLine(T value)
{
OutOfLineList* list = this->list();
for (unsigned i = 0; i < list->m_length; ++i) {
@@ -384,29 +402,6 @@
return true;
}
- NEVER_INLINE bool mergeOtherOutOfLine(const TinyPtrSet& other)
- {
- OutOfLineList* list = other.list();
- if (list->m_length >= 2) {
- if (isThin()) {
- OutOfLineList* myNewList = OutOfLineList::create(
- list->m_length + !!singleEntry());
- if (singleEntry()) {
- myNewList->m_length = 1;
- myNewList->list()[0] = singleEntry();
- }
- set(myNewList);
- }
- bool changed = false;
- for (unsigned i = 0; i < list->m_length; ++i)
- changed |= addOutOfLine(list->list()[i]);
- return changed;
- }
-
- ASSERT(list->m_length);
- return add(list->list()[0]);
- }
-
bool containsOutOfLine(T value) const
{
OutOfLineList* list = this->list();
Modified: trunk/Tools/ChangeLog (231491 => 231492)
--- trunk/Tools/ChangeLog 2018-05-08 17:44:02 UTC (rev 231491)
+++ trunk/Tools/ChangeLog 2018-05-08 17:52:55 UTC (rev 231492)
@@ -1,3 +1,16 @@
+2018-05-08 Ryan Haddad <[email protected]>
+
+ Unreviewed, rolling out r231468.
+
+ Broke the CLoop build
+
+ Reverted changeset:
+
+ "InPlaceAbstractState::beginBasicBlock shouldn't have to clear
+ any abstract values"
+ https://bugs.webkit.org/show_bug.cgi?id=185365
+ https://trac.webkit.org/changeset/231468
+
2018-05-08 Sihui Liu <[email protected]>
[WKHTTPCookieStore getAllCookies] returns inconsistent creation time
Modified: trunk/Tools/Scripts/run-jsc-benchmarks (231491 => 231492)
--- trunk/Tools/Scripts/run-jsc-benchmarks 2018-05-08 17:44:02 UTC (rev 231491)
+++ trunk/Tools/Scripts/run-jsc-benchmarks 2018-05-08 17:52:55 UTC (rev 231492)
@@ -1,6 +1,6 @@
#!/usr/bin/env ruby
-# Copyright (C) 2011-2018 Apple Inc. All rights reserved.
+# Copyright (C) 2011-2015 Apple Inc. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
@@ -216,10 +216,8 @@
$outer=4
$quantum=1000
$includeSunSpider=true
-$includeSunSpiderCompileTime=true
$includeLongSpider=false
$includeV8=true
-$includeV8CompileTime=true
$includeKraken=true
$includeJSBench=true
$includeMicrobenchmarks=true
@@ -313,11 +311,7 @@
puts "--dont-copy-vms Don't copy VMs even when doing a remote benchmarking run;"
puts " instead assume that they are already there."
puts "--sunspider Only run SunSpider."
- puts "--sunspider-compile-time"
- puts " Only run the SunSpider compile time benchmark."
- puts "--v8-spider Only run SunSpider-style V8."
- puts "--v8-spider-compile-time"
- puts " Only run the SunSpider-style V8 compile time benchmark."
+ puts "--v8-spider Only run V8."
puts "--kraken Only run Kraken."
puts "--js-bench Only run JSBench."
puts "--microbenchmarks Only run microbenchmarks."
@@ -862,20 +856,6 @@
end
end
-# Benchmark that consists of a single file and must be loaded in its own global object each
-# time (i.e. run()), and returns the time spent compiling
-class SingleFileCompileTimeBenchmarkParameters
- attr_reader :benchPath
-
- def initialize(benchPath)
- @benchPath = benchPath
- end
-
- def kind
- :singleFileCompileTimeBenchmark
- end
-end
-
# Benchmark that consists of one or more data files that should be loaded globally, followed
# by a command to run the benchmark.
class MultiFileTimedBenchmarkParameters
@@ -1019,23 +999,6 @@
doublePuts($stderr,file,"print(\"#{name}: #{plan.vm}: #{plan.iteration}: #{innerIndex}: Time: \"+__bencher_run(#{benchParams.benchPath.inspect}));")
doublePuts($stderr,file,"gc();") unless plan.vm.shouldMeasureGC
}
- elsif benchParams.kind == :singleFileCompileTimeBenchmark
- doublePuts($stderr,file,"function __bencher_run(__bencher_what) {")
- doublePuts($stderr,file," var __compileTimeBefore = totalCompileTime();")
- $rerun.times {
- doublePuts($stderr,file," run(__bencher_what);")
- }
- doublePuts($stderr,file," return totalCompileTime() - __compileTimeBefore;")
- doublePuts($stderr,file,"}")
- $warmup.times {
- doublePuts($stderr,file,"__bencher_run(#{benchParams.benchPath.inspect})")
- doublePuts($stderr,file,"gc();") unless plan.vm.shouldMeasureGC
- }
- $inner.times {
- | innerIndex |
- doublePuts($stderr,file,"print(\"#{name}: #{plan.vm}: #{plan.iteration}: #{innerIndex}: Time: \"+__bencher_run(#{benchParams.benchPath.inspect}));")
- doublePuts($stderr,file,"gc();") unless plan.vm.shouldMeasureGC
- }
else
raise unless benchParams.kind == :singleFileTimedBenchmark
doublePuts($stderr,file,"function __bencher_run(__bencher_what) {")
@@ -1576,10 +1539,6 @@
"x#{weight} "
end
end
-
- def environment
- {}
- end
end
class SunSpiderBenchmark
@@ -1682,23 +1641,6 @@
end
end
-class CompileTimeBenchmark
- include Benchmark
-
- def initialize(name, fullPath)
- @name = name
- @fullPath = fullPath
- end
-
- def emitRunCode(plan)
- emitBenchRunCode(fullname, plan, SingleFileCompileTimeBenchmarkParameters.new(ensureFile("CompileTime-#{@name}", @fullPath)))
- end
-
- def environment
- {"JSC_useConcurrentJIT" => "false", "JSC_reportTotalCompileTimes" => "true"}
- end
-end
-
class KrakenBenchmark
include Benchmark
@@ -2096,12 +2038,7 @@
end
def environment
- result = @environment.clone
- benchmark.environment.each_pair {
- | key, value |
- result[key] = value
- }
- result
+ @environment
end
def prefix
@@ -2785,10 +2722,8 @@
def resetBenchOptionsIfNecessary
unless $sawBenchOptions
$includeSunSpider = false
- $includeSunSpiderCompileTime = false
$includeLongSpider = false
$includeV8 = false
- $includeV8CompileTime = false
$includeKraken = false
$includeJSBench = false
$includeMicrobenchmarks = false
@@ -2813,10 +2748,8 @@
['--minimum', GetoptLong::REQUIRED_ARGUMENT],
['--timing-mode', GetoptLong::REQUIRED_ARGUMENT],
['--sunspider', GetoptLong::NO_ARGUMENT],
- ['--sunspider-compile-time', GetoptLong::NO_ARGUMENT],
['--longspider', GetoptLong::NO_ARGUMENT],
['--v8-spider', GetoptLong::NO_ARGUMENT],
- ['--v8-spider-compile-time', GetoptLong::NO_ARGUMENT],
['--kraken', GetoptLong::NO_ARGUMENT],
['--js-bench', GetoptLong::NO_ARGUMENT],
['--microbenchmarks', GetoptLong::NO_ARGUMENT],
@@ -2895,9 +2828,6 @@
when '--sunspider'
resetBenchOptionsIfNecessary
$includeSunSpider = true
- when '--sunspider-compile-time'
- resetBenchOptionsIfNecessary
- $includeSunSpiderCompileTime = true
when '--longspider'
resetBenchOptionsIfNecessary
$includeLongSpider = true
@@ -2904,9 +2834,6 @@
when '--v8-spider'
resetBenchOptionsIfNecessary
$includeV8 = true
- when '--v8-spider-compile-time'
- resetBenchOptionsIfNecessary
- $includeV8CompileTime = true
when '--kraken'
resetBenchOptionsIfNecessary
$includeKraken = true
@@ -3075,7 +3002,6 @@
}
SUNSPIDER = BenchmarkSuite.new("SunSpider", :arithmeticMean, 0)
- SUNSPIDER_COMPILE_TIME = BenchmarkSuite.new("SunSpider-CompileTime", :arithmeticMean, 0)
WARMUP = BenchmarkSuite.new("WARMUP", :arithmeticMean, 0)
["3d-cube", "3d-morph", "3d-raytrace", "access-binary-trees",
"access-fannkuch", "access-nbody", "access-nsieve",
@@ -3087,7 +3013,6 @@
"string-unpack-code", "string-validate-input"].each {
| name |
SUNSPIDER.add SunSpiderBenchmark.new(name)
- SUNSPIDER_COMPILE_TIME.add CompileTimeBenchmark.new(name, "#{SUNSPIDER_PATH}/#{name}.js")
WARMUP.addIgnoringPattern SunSpiderBenchmark.new(name)
}
@@ -3104,12 +3029,10 @@
}
V8 = BenchmarkSuite.new("V8Spider", :geometricMean, 0)
- V8_COMPILE_TIME = BenchmarkSuite.new("V8Spider-CompileTime", :geometricMean, 0)
["crypto", "deltablue", "earley-boyer", "raytrace",
"regexp", "richards", "splay"].each {
| name |
V8.add V8Benchmark.new(name)
- V8_COMPILE_TIME.add CompileTimeBenchmark.new(name, "#{V8_PATH}/v8-#{name}.js")
}
OCTANE = BenchmarkSuite.new("Octane", :geometricMean, 1)
@@ -3270,10 +3193,6 @@
$suites << SUNSPIDER
end
- if $includeSunSpiderCompileTime and not SUNSPIDER_COMPILE_TIME.empty?
- $suites << SUNSPIDER_COMPILE_TIME
- end
-
if $includeLongSpider and not LONGSPIDER.empty?
$suites << LONGSPIDER
end
@@ -3282,10 +3201,6 @@
$suites << V8
end
- if $includeV8CompileTime and not V8_COMPILE_TIME.empty?
- $suites << V8_COMPILE_TIME
- end
-
if $includeOctane and not OCTANE.empty?
if OCTANE_PATH
$suites << OCTANE