Skip to content

1. Structure

Andrew Chin edited this page May 2, 2019 · 6 revisions

This section contains a detailed breakdown of the directory structure found in the project repository which is important for the purpose of development.

  • tsan - TSan top directory (drop into the LLVM Compiler RT directory before building)
    • rtl - TSan runtime library
      • ufo - UFO online program tracing library
  • ufo-predict - java project which implements the offline trace analysis

The directory tsan is mostly the same as the directory that would be found in the LLVM Compiler RT module [1]. We highlight the differences here:

  • The subdirectory tsan/rtl/ufo/ has been added, which contains the library for trace generation.
  • Functions from the UFO tracing library have been added into the TSan rtl in order to instrument code and produce execution traces at runtime. For details, see the wiki page, "UFO Tracing In Depth."

UFO RTL Structure

We provide some information on each file in UFO's runtime library (tsan/rtl/ufo/).

  • defs.h: Contains the definitions of runtime command line arguments which affect the functionality of UFO. For details on usage, see the project README at https://github.com/parasol-aser/UFO/#ufo-usage

  • ufo_interface.h/cc:

  • ufo.h/cc:

  • ufo_stat.h/cc:

  • tlbuffer.h/cc:

  • report.h/cc:

  • io_queue.h/cc:

  • rtl_impl.h:

  • dummy_rtl.h:

  • impl_mem_acc.h:

References

[1] https://compiler-rt.llvm.org/

Clone this wiki locally