Skip to content

hlim1/JITCompilerIRViz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Visualizing The Intermediate Representation JIT Compilers

Publication

Lim, H., Kobourov, S. (2021). Visualizing JIT Compiler Graphs. In: Purchase, H.C., Rutter, I. (eds) Graph Drawing and Network Visualization. GD 2021. Lecture Notes in Computer Science(), vol 12868. Springer, Cham. https://doi.org/10.1007/978-3-030-92931-2_10

Requirements

Chromium Bug Report Site

Steps

  1. git clone https://github.com/hlim1/JITCompilerIRViz.git
  2. Checkout to the target Git commit of V8 version that holds a bug.
    • e.g. git checkout 1006f3cd23d1cd7134452c987d10a124aab1d350
  3. Modify the GenerateBytecodeHandler function in v8/src/interpreter/interpreter-generator.cc to print the list of bytecodes.
    • e.g. printf("%hhx;", bytecode); std::cout << bytecode << std::endl;
  4. Build V8 executable (D8) using GN by following the instruction on V8 documentation.
    • list of bytecode (Hex:Ascii) will be printed during the build.
  5. Convert printed bytecode list to hex to json file under the format {"hex":"Ascii"}.
    • We provide bytecode_json_generator.py to generate the json file if the user used our example in the step 3.
    • python3 bytecode_json_generator.py -f bytecode_list
  6. Collect Proof-of-Concept (PoC) code from the bug report.
  7. Move to src file.
    • cd JITCompilerIRViz/src
  8. Run Main.py with the options.
    • python3 Main.py -f PoC.js -e d8_executable -b bytecode_json_file -d directory_to_store_generated_temporary_files -n number_of PoCs_to_generate -o output_csv_file_name
  9. Navigate to MetroSet
  10. Check the CSV file was generated.
  11. Follow the instruction on MetroSet to generate the map.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published