haikuwebkit/Tools/ReducedFTL/processIRDump.sh

16 lines
189 B
Bash
Raw Permalink Normal View History

fourthTier: FTL should be able to generate LLVM IR that uses an intrinsic for OSR exit https://bugs.webkit.org/show_bug.cgi?id=118948 Source/JavaScriptCore: Reviewed by Sam Weinig. - Add the ability to generate LLVM IR but then not use it, via --llvmAlwaysFails=true. This allows doing "what if" experiments with IR generation, even if the generated IR can't yet execute. - Add an OSR exit path that just calls an intrinsic that combines the branch and the off-ramp. * JavaScriptCore.xcodeproj/project.pbxproj: * dfg/DFGPlan.cpp: (JSC::DFG::Plan::compileInThreadImpl): * ftl/FTLFail.cpp: Added. (FTL): (JSC::FTL::fail): * ftl/FTLFail.h: Added. (FTL): * ftl/FTLIntrinsicRepository.h: (FTL): * ftl/FTLLowerDFGToLLVM.cpp: (JSC::FTL::LowerDFGToLLVM::appendOSRExit): (JSC::FTL::LowerDFGToLLVM::emitOSRExitCall): * runtime/Options.h: (JSC): Tools: Reviewed by Sam Weinig. - Make ReducedFTL capable of dealing with code that uses the fake OSR exit intrinsic, by exporting it as a function. - Make combineModules.rb idempotent. Sometimes it's convenient to run a file through it even if you know that you've already done so. See processIRDump.sh. - Add a script, processIRDump.sh, that takes the output of --dumpLLVMIR=true and runs it through ReducedFTL automatically. You typically want to say something like: jsc --dumpLLVMIR=true <program(s)> > jsc-output.txt ./processIRDump.sh --timing < jsc-output.txt * ReducedFTL/ReducedFTL.c: (webkit_osr_exit): * ReducedFTL/combineModules.rb: * ReducedFTL/processIRDump.sh: Added. Canonical link: https://commits.webkit.org/137073@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@153289 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2013-07-25 04:05:18 +00:00
#!/bin/sh
set -e
set -x
if test "x${LLVM_PATH}" == "x"
then
path=
else
path="${LLVM_PATH}/bin/"
fi
./combineModules.rb > temp.ll
${path}llvm-as temp.ll
./ReducedFTL temp.bc "$@"