• oliver@apple.com's avatar
    fourthTier: FTL should be able to generate LLVM IR that uses an intrinsic for OSR exit · 6d1bb643
    oliver@apple.com authored
    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
    * JavaScriptCore.xcodeproj/project.pbxproj:
    * dfg/DFGPlan.cpp:
    * ftl/FTLFail.cpp: Added.
    * ftl/FTLFail.h: Added.
    * ftl/FTLIntrinsicRepository.h:
    * ftl/FTLLowerDFGToLLVM.cpp:
    * runtime/Options.h:
    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:
    * ReducedFTL/combineModules.rb:
    * ReducedFTL/processIRDump.sh: Added.
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153289 268f45cc-cd09-0410-ab3c-d52691b4dbfc
DFGPlan.cpp 9.07 KB