Bug 153456
Summary: | [GTK][EFL] FTL with B3 does not build | ||
---|---|---|---|
Product: | WebKit | Reporter: | Michael Catanzaro <mcatanzaro> |
Component: | JavaScriptCore | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED WORKSFORME | ||
Severity: | Minor | CC: | bugs-noreply, cgarcia, fpizlo, gyuyoung, gyuyoung.kim, mcatanzaro, ossy |
Priority: | P2 | ||
Version: | Other | ||
Hardware: | PC | ||
OS: | Linux |
Michael Catanzaro
Manually change FTL_USES_B3 to 1 in DFGCommon.h. Then:
[201/5346] Building CXX object Source/...criptCore.dir/bytecode/CodeBlock.cpp.o
FAILED: /usr/lib64/ccache/clang++ -DBUILDING_GTK__=1 -DBUILDING_JavaScriptCore -DBUILDING_WITH_CMAKE=1 -DDATA_DIR=\"share\" -DGETTEXT_PACKAGE=\"WebKit2GTK-4.0\" -DHAVE_CONFIG_H=1 -DJavaScriptCore_EXPORTS -DLIBDIR=\"/home/mcatanzaro/src/jhbuild/install/lib\" -DSTATICALLY_LINKED_WITH_WTF -DUSER_AGENT_GTK_MAJOR_VERSION=\"602\" -DUSER_AGENT_GTK_MINOR_VERSION=\"1\" -DWEBKITGTK_API_VERSION_STRING=\"4.0\" -I. -I../../Source/JavaScriptCore -I../../Source/JavaScriptCore/.. -I../../Source/JavaScriptCore/API -I../../Source/JavaScriptCore/ForwardingHeaders -I../../Source/JavaScriptCore/assembler -I../../Source/JavaScriptCore/b3 -I../../Source/JavaScriptCore/b3/air -I../../Source/JavaScriptCore/bindings -I../../Source/JavaScriptCore/builtins -I../../Source/JavaScriptCore/bytecode -I../../Source/JavaScriptCore/bytecompiler -I../../Source/JavaScriptCore/dfg -I../../Source/JavaScriptCore/disassembler -I../../Source/JavaScriptCore/disassembler/udis86 -I../../Source/JavaScriptCore/ftl -I../../Source/JavaScriptCore/heap -I../../Source/JavaScriptCore/debugger -I../../Source/JavaScriptCore/inspector -I../../Source/JavaScriptCore/inspector/agents -I../../Source/JavaScriptCore/inspector/augmentable -I../../Source/JavaScriptCore/inspector/remote -I../../Source/JavaScriptCore/interpreter -I../../Source/JavaScriptCore/jit -I../../Source/JavaScriptCore/llint -I../../Source/JavaScriptCore/llvm -I../../Source/JavaScriptCore/parser -I../../Source/JavaScriptCore/profiler -I../../Source/JavaScriptCore/replay -I../../Source/JavaScriptCore/runtime -I../../Source/JavaScriptCore/tools -I../../Source/JavaScriptCore/wasm -I../../Source/JavaScriptCore/yarr -IDerivedSources -IDerivedSources/ForwardingHeaders -IDerivedSources/JavaScriptCore -IDerivedSources/JavaScriptCore/inspector -I../../Source/WTF -isystem /home/mcatanzaro/src/jhbuild/install/include/glib-2.0 -isystem /home/mcatanzaro/src/jhbuild/install/lib/glib-2.0/include -std=c++11 -fcolor-diagnostics -gsplit-dwarf -Qunused-arguments -g -fPIC -Wall -Wextra -Wcast-align -Wformat-security -Wmissing-format-attribute -Wpointer-arith -Wundef -Wwrite-strings -Wno-parentheses-equality -MMD -MT Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/bytecode/CodeBlock.cpp.o -MF Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/bytecode/CodeBlock.cpp.o.d -o Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/bytecode/CodeBlock.cpp.o -c ../../Source/JavaScriptCore/bytecode/CodeBlock.cpp
In file included from ../../Source/JavaScriptCore/bytecode/CodeBlock.cpp:79:
In file included from ../../Source/JavaScriptCore/ftl/FTLJITCode.h:35:
../../Source/JavaScriptCore/ftl/FTLOSRExit.h:176:12: error: no member named 'ValueRep' in namespace 'JSC::B3'; did you mean 'DFG::ValueRep'?
Vector<B3::ValueRep> m_valueReps;
^~~~~~~~~~~~
DFG::ValueRep
../../Source/JavaScriptCore/dfg/DFGNodeType.h:367:565: note: 'DFG::ValueRep' declared here
JSConstant, DoubleConstant, Int52Constant, Identity, ToThis, CreateThis, GetCallee, GetArgumentCount, GetLocal, SetLocal, PutStack, KillStack, GetStack, MovHint, ZombieHint, ExitOK, Phantom, Check, Upsilon, Phi, Flush, PhantomLocal, LoopHint, ExtractOSREntryLocal, CheckTierUpInLoop, CheckTierUpAndOSREnter, CheckTierUpWithNestedTriggerAndOSREnter, CheckTierUpAtReturn, GetLocalUnlinked, SetArgument, InvalidationPoint, BitAnd, BitOr, BitXor, BitLShift, BitRShift, BitURShift, ValueToInt32, UInt32ToNumber, BooleanToNumber, DoubleAsInt32, DoubleRep, Int52Rep, ValueRep, FiatInt52, ArithAdd, ArithClz32, ArithSub, ArithNegate, ArithMul, ArithIMul, ArithDiv, ArithMod, ArithAbs, ArithMin, ArithMax, ArithFRound, ArithPow, ArithRandom, ArithRound, ArithSqrt, ArithSin, ArithCos, ArithLog, ValueAdd, StrCat, GetByVal, GetMyArgumentByVal, LoadVarargs, ForwardVarargs, PutByValDirect, PutByVal, PutByValAlias, GetById, GetByIdFlush, PutById, PutByIdFlush, PutByIdDirect, PutGetterById, PutSetterById, PutGetterSetterById, PutGetterByVal, PutSetterByVal, CheckStructure, GetExecutable, PutStructure, AllocatePropertyStorage, ReallocatePropertyStorage, GetButterfly, GetButterflyReadOnly, CheckArray, Arrayify, ArrayifyToStructure, GetIndexedPropertyStorage, ConstantStoragePointer, GetGetter, GetSetter, GetByOffset, GetGetterSetterByOffset, MultiGetByOffset, PutByOffset, MultiPutByOffset, GetArrayLength, GetTypedArrayByteOffset, GetScope, SkipScope, GetClosureVar, PutClosureVar, GetGlobalVar, GetGlobalLexicalVariable, PutGlobalVariable, NotifyWrite, VarInjectionWatchpoint, CheckCell, CheckNotEmpty, CheckBadCell, CheckInBounds, CheckIdent, CheckTypeInfoFlags, ArrayPush, ArrayPop, RegExpExec, RegExpTest, StringCharCodeAt, StringCharAt, StringFromCharCode, CompareLess, CompareLessEq, CompareGreater, CompareGreaterEq, CompareEq, CompareStrictEq, Call, Construct, CallVarargs, CallForwardVarargs, ConstructVarargs, ConstructForwardVarargs, TailCallInlinedCaller, TailCallVarargsInlinedCaller, TailCallForwardVarargsInlinedCaller, NewObject, NewArray, NewArrayWithSize, NewArrayBuffer, NewTypedArray, NewRegexp, GetRestLength, CopyRest, PhantomNewObject, PutHint, CheckStructureImmediate, MaterializeNewObject, PhantomNewFunction, PhantomNewGeneratorFunction, PhantomCreateActivation, MaterializeCreateActivation, Breakpoint, ProfileWillCall, ProfileDidCall, OverridesHasInstance, InstanceOf, InstanceOfCustom, IsUndefined, IsBoolean, IsNumber, IsString, IsObject, IsObjectOrNull, IsFunction, TypeOf, LogicalNot, ToPrimitive, ToString, CallStringConstructor, NewStringObject, MakeRope, In, ProfileType, ProfileControlFlow, CreateActivation, CreateDirectArguments, PhantomDirectArguments, CreateScopedArguments, CreateClonedArguments, PhantomClonedArguments, GetFromArguments, PutToArguments, NewFunction, NewArrowFunction, NewGeneratorFunction, Throw, ThrowReferenceError, Jump, Branch, Switch, Return, TailCall, TailCallVarargs, TailCallForwardVarargs, Unreachable, CountExecution, ForceOSRExit, BottomValue, CheckWatchdogTimer, StoreBarrier, GetEnumerableLength, HasIndexedProperty, HasStructureProperty, HasGenericProperty, GetDirectPname, GetPropertyEnumerator, GetEnumeratorStructurePname, GetEnumeratorGenericPname, ToIndexString,
^
In file included from ../../Source/JavaScriptCore/bytecode/CodeBlock.cpp:79:
In file included from ../../Source/JavaScriptCore/ftl/FTLJITCode.h:35:
../../Source/JavaScriptCore/ftl/FTLOSRExit.h:176:12: error: template argument for template type parameter must be a type
Vector<B3::ValueRep> m_valueReps;
^~~~~~~~~~~~
../../Source/WTF/wtf/Forward.h:37:19: note: template parameter is declared here
template<typename T, size_t inlineCapacity, typename OverflowHandler, size_t minCapacity> class Vector;
^
In file included from ../../Source/JavaScriptCore/bytecode/CodeBlock.cpp:79:
In file included from ../../Source/JavaScriptCore/ftl/FTLJITCode.h:35:
../../Source/JavaScriptCore/ftl/FTLOSRExit.h:193:22: error: cannot initialize object parameter of type 'JSC::DFG::OSRExitBase' with an expression of type 'JSC::FTL::OSRExit'
OSRExitBase::considerAddingAsFrequentExitSite(profiledCodeBlock, ExitFromFTL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../Source/JavaScriptCore/bytecode/CodeBlock.cpp:79:
../../Source/JavaScriptCore/ftl/FTLJITCode.h:72:53: error: no member named 'OpaqueByproducts' in namespace 'JSC::B3'
void initializeB3Byproducts(std::unique_ptr<B3::OpaqueByproducts>);
~~~~^
../../Source/JavaScriptCore/ftl/FTLJITCode.h:111:25: error: no member named 'OpaqueByproducts' in namespace 'JSC::B3'
std::unique_ptr<B3::OpaqueByproducts> m_b3Byproducts;
~~~~^
5 errors generated.
[201/5346] Building CXX object Source/...bytecode/LazyOperandValueProfile.cpp.o
ninja: build stopped: subcommand failed.
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Gyuyoung Kim
It looks like EFL port has same build error. This fix may support EFL port as well.
Csaba Osztrogonác
To enable B3 JIT, you need to
- set ENABLE_B3_JIT to 1 in Platform.h
- set FTL_USES_B3 to 1 in DFGCommon.h