├── .gitmodules ├── CMakeLists.txt ├── LICENSE.txt ├── README.md ├── doc ├── CMakeLists.txt ├── api │ ├── graph │ ├── llvm │ │ ├── BasicBlock.java │ │ ├── CallInst.java │ │ ├── Function.java │ │ ├── GetElementPtrInst.java │ │ ├── Instruction.java │ │ ├── LoadInst.java │ │ ├── Module.java │ │ ├── ModulePass.java │ │ ├── StoreInst.java │ │ ├── StructType.java │ │ ├── Type.java │ │ └── Value.java │ └── loom.java ├── doxygen │ ├── CMakeLists.txt │ ├── Doxyfile.in │ ├── footer.html │ ├── header.html │ └── loom-dox.css ├── dtrace │ ├── usdt.graffle │ ├── usdt_loom.png │ └── usdt_orginal.png ├── images │ ├── instr-callout.pdf │ ├── instr-inline.pdf │ ├── instrumentation.graffle │ ├── loom-small.png │ ├── loom.ai │ └── loom.png └── loom-overview.adoc ├── examples └── socket_replacement.policy ├── publications ├── Readme.md └── llvm-dev-mtg-2019 │ └── Loom_Weaving_Instrumentation_for_Program_Analysis-Brian_Kidney.pdf ├── scripts ├── loom-fbsdmake ├── plot-tracelen └── xtools.sh ├── src ├── CMakeLists.txt ├── DTraceLogger.cc ├── DTraceLogger.hh ├── DagTransform.cc ├── DagTransform.hh ├── DebugInfo.cc ├── DebugInfo.hh ├── IRUtils.cc ├── IRUtils.hh ├── InstrStrategy.cc ├── InstrStrategy.hh ├── Instrumentation.cc ├── Instrumentation.hh ├── Instrumenter.cc ├── Instrumenter.hh ├── KTraceLogger.cc ├── KTraceLogger.hh ├── Logger.cc ├── Logger.hh ├── Metadata.hh ├── NVSerializer.cc ├── NVSerializer.hh ├── OptPass.cc ├── Policy.cc ├── Policy.hh ├── PolicyFile.cc ├── PolicyFile.hh ├── Serializer.cc ├── Serializer.hh ├── Strings.cc ├── Strings.hh ├── Transform.cc └── Transform.hh └── test ├── CMakeLists.txt ├── call-instrumentation-inline-noblocks.c ├── call-instrumentation-inline.c ├── call-instrumentation-libxo.c ├── call-instrumentation.c ├── field-instrumentation.c ├── function-instrumentation-libxo.c ├── function-instrumentation-with-file-scope.c ├── function-instrumentation.c ├── indirect-fields.c ├── instrument-everything-and-run.ll ├── instrument-everything-and-run.ll.policy ├── instrument-everything.ll ├── instrument-everything.ll.policy ├── ktrace-kernel.c ├── ktrace-userspace-libnv-run.c ├── ktrace-userspace-libnv.c ├── ktrace-userspace.c ├── lit.cfg ├── load-plugin.ll ├── regression ├── cat.c ├── missing-phi.ll ├── missing-phi.ll.policy ├── non-dominating-inst.ll ├── non-dominating-inst.ll.policy ├── sccp-block-fold.ll └── sccp-block-fold.ll.policy ├── static.c ├── test_support.py ├── wildcard-field-instrumentation.c └── wildcard-function-instrumentation.c /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/.gitmodules -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/CMakeLists.txt -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/LICENSE.txt -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/README.md -------------------------------------------------------------------------------- /doc/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(doxygen) 2 | -------------------------------------------------------------------------------- /doc/api/graph: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/doc/api/graph -------------------------------------------------------------------------------- /doc/api/llvm/BasicBlock.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/doc/api/llvm/BasicBlock.java -------------------------------------------------------------------------------- /doc/api/llvm/CallInst.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/doc/api/llvm/CallInst.java -------------------------------------------------------------------------------- /doc/api/llvm/Function.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/doc/api/llvm/Function.java -------------------------------------------------------------------------------- /doc/api/llvm/GetElementPtrInst.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/doc/api/llvm/GetElementPtrInst.java -------------------------------------------------------------------------------- /doc/api/llvm/Instruction.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/doc/api/llvm/Instruction.java -------------------------------------------------------------------------------- /doc/api/llvm/LoadInst.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/doc/api/llvm/LoadInst.java -------------------------------------------------------------------------------- /doc/api/llvm/Module.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/doc/api/llvm/Module.java -------------------------------------------------------------------------------- /doc/api/llvm/ModulePass.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/doc/api/llvm/ModulePass.java -------------------------------------------------------------------------------- /doc/api/llvm/StoreInst.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/doc/api/llvm/StoreInst.java -------------------------------------------------------------------------------- /doc/api/llvm/StructType.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/doc/api/llvm/StructType.java -------------------------------------------------------------------------------- /doc/api/llvm/Type.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/doc/api/llvm/Type.java -------------------------------------------------------------------------------- /doc/api/llvm/Value.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/doc/api/llvm/Value.java -------------------------------------------------------------------------------- /doc/api/loom.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/doc/api/loom.java -------------------------------------------------------------------------------- /doc/doxygen/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/doc/doxygen/CMakeLists.txt -------------------------------------------------------------------------------- /doc/doxygen/Doxyfile.in: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/doc/doxygen/Doxyfile.in -------------------------------------------------------------------------------- /doc/doxygen/footer.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/doc/doxygen/footer.html -------------------------------------------------------------------------------- /doc/doxygen/header.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/doc/doxygen/header.html -------------------------------------------------------------------------------- /doc/doxygen/loom-dox.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/doc/doxygen/loom-dox.css -------------------------------------------------------------------------------- /doc/dtrace/usdt.graffle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/doc/dtrace/usdt.graffle -------------------------------------------------------------------------------- /doc/dtrace/usdt_loom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/doc/dtrace/usdt_loom.png -------------------------------------------------------------------------------- /doc/dtrace/usdt_orginal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/doc/dtrace/usdt_orginal.png -------------------------------------------------------------------------------- /doc/images/instr-callout.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/doc/images/instr-callout.pdf -------------------------------------------------------------------------------- /doc/images/instr-inline.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/doc/images/instr-inline.pdf -------------------------------------------------------------------------------- /doc/images/instrumentation.graffle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/doc/images/instrumentation.graffle -------------------------------------------------------------------------------- /doc/images/loom-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/doc/images/loom-small.png -------------------------------------------------------------------------------- /doc/images/loom.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/doc/images/loom.ai -------------------------------------------------------------------------------- /doc/images/loom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/doc/images/loom.png -------------------------------------------------------------------------------- /doc/loom-overview.adoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/doc/loom-overview.adoc -------------------------------------------------------------------------------- /examples/socket_replacement.policy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/examples/socket_replacement.policy -------------------------------------------------------------------------------- /publications/Readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/publications/Readme.md -------------------------------------------------------------------------------- /publications/llvm-dev-mtg-2019/Loom_Weaving_Instrumentation_for_Program_Analysis-Brian_Kidney.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/publications/llvm-dev-mtg-2019/Loom_Weaving_Instrumentation_for_Program_Analysis-Brian_Kidney.pdf -------------------------------------------------------------------------------- /scripts/loom-fbsdmake: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/scripts/loom-fbsdmake -------------------------------------------------------------------------------- /scripts/plot-tracelen: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/scripts/plot-tracelen -------------------------------------------------------------------------------- /scripts/xtools.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/scripts/xtools.sh -------------------------------------------------------------------------------- /src/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/src/CMakeLists.txt -------------------------------------------------------------------------------- /src/DTraceLogger.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/src/DTraceLogger.cc -------------------------------------------------------------------------------- /src/DTraceLogger.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/src/DTraceLogger.hh -------------------------------------------------------------------------------- /src/DagTransform.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/src/DagTransform.cc -------------------------------------------------------------------------------- /src/DagTransform.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/src/DagTransform.hh -------------------------------------------------------------------------------- /src/DebugInfo.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/src/DebugInfo.cc -------------------------------------------------------------------------------- /src/DebugInfo.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/src/DebugInfo.hh -------------------------------------------------------------------------------- /src/IRUtils.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/src/IRUtils.cc -------------------------------------------------------------------------------- /src/IRUtils.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/src/IRUtils.hh -------------------------------------------------------------------------------- /src/InstrStrategy.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/src/InstrStrategy.cc -------------------------------------------------------------------------------- /src/InstrStrategy.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/src/InstrStrategy.hh -------------------------------------------------------------------------------- /src/Instrumentation.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/src/Instrumentation.cc -------------------------------------------------------------------------------- /src/Instrumentation.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/src/Instrumentation.hh -------------------------------------------------------------------------------- /src/Instrumenter.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/src/Instrumenter.cc -------------------------------------------------------------------------------- /src/Instrumenter.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/src/Instrumenter.hh -------------------------------------------------------------------------------- /src/KTraceLogger.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/src/KTraceLogger.cc -------------------------------------------------------------------------------- /src/KTraceLogger.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/src/KTraceLogger.hh -------------------------------------------------------------------------------- /src/Logger.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/src/Logger.cc -------------------------------------------------------------------------------- /src/Logger.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/src/Logger.hh -------------------------------------------------------------------------------- /src/Metadata.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/src/Metadata.hh -------------------------------------------------------------------------------- /src/NVSerializer.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/src/NVSerializer.cc -------------------------------------------------------------------------------- /src/NVSerializer.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/src/NVSerializer.hh -------------------------------------------------------------------------------- /src/OptPass.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/src/OptPass.cc -------------------------------------------------------------------------------- /src/Policy.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/src/Policy.cc -------------------------------------------------------------------------------- /src/Policy.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/src/Policy.hh -------------------------------------------------------------------------------- /src/PolicyFile.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/src/PolicyFile.cc -------------------------------------------------------------------------------- /src/PolicyFile.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/src/PolicyFile.hh -------------------------------------------------------------------------------- /src/Serializer.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/src/Serializer.cc -------------------------------------------------------------------------------- /src/Serializer.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/src/Serializer.hh -------------------------------------------------------------------------------- /src/Strings.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/src/Strings.cc -------------------------------------------------------------------------------- /src/Strings.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/src/Strings.hh -------------------------------------------------------------------------------- /src/Transform.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/src/Transform.cc -------------------------------------------------------------------------------- /src/Transform.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/src/Transform.hh -------------------------------------------------------------------------------- /test/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/test/CMakeLists.txt -------------------------------------------------------------------------------- /test/call-instrumentation-inline-noblocks.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/test/call-instrumentation-inline-noblocks.c -------------------------------------------------------------------------------- /test/call-instrumentation-inline.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/test/call-instrumentation-inline.c -------------------------------------------------------------------------------- /test/call-instrumentation-libxo.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/test/call-instrumentation-libxo.c -------------------------------------------------------------------------------- /test/call-instrumentation.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/test/call-instrumentation.c -------------------------------------------------------------------------------- /test/field-instrumentation.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/test/field-instrumentation.c -------------------------------------------------------------------------------- /test/function-instrumentation-libxo.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/test/function-instrumentation-libxo.c -------------------------------------------------------------------------------- /test/function-instrumentation-with-file-scope.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/test/function-instrumentation-with-file-scope.c -------------------------------------------------------------------------------- /test/function-instrumentation.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/test/function-instrumentation.c -------------------------------------------------------------------------------- /test/indirect-fields.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/test/indirect-fields.c -------------------------------------------------------------------------------- /test/instrument-everything-and-run.ll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/test/instrument-everything-and-run.ll -------------------------------------------------------------------------------- /test/instrument-everything-and-run.ll.policy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/test/instrument-everything-and-run.ll.policy -------------------------------------------------------------------------------- /test/instrument-everything.ll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/test/instrument-everything.ll -------------------------------------------------------------------------------- /test/instrument-everything.ll.policy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/test/instrument-everything.ll.policy -------------------------------------------------------------------------------- /test/ktrace-kernel.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/test/ktrace-kernel.c -------------------------------------------------------------------------------- /test/ktrace-userspace-libnv-run.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/test/ktrace-userspace-libnv-run.c -------------------------------------------------------------------------------- /test/ktrace-userspace-libnv.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/test/ktrace-userspace-libnv.c -------------------------------------------------------------------------------- /test/ktrace-userspace.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/test/ktrace-userspace.c -------------------------------------------------------------------------------- /test/lit.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/test/lit.cfg -------------------------------------------------------------------------------- /test/load-plugin.ll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/test/load-plugin.ll -------------------------------------------------------------------------------- /test/regression/cat.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/test/regression/cat.c -------------------------------------------------------------------------------- /test/regression/missing-phi.ll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/test/regression/missing-phi.ll -------------------------------------------------------------------------------- /test/regression/missing-phi.ll.policy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/test/regression/missing-phi.ll.policy -------------------------------------------------------------------------------- /test/regression/non-dominating-inst.ll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/test/regression/non-dominating-inst.ll -------------------------------------------------------------------------------- /test/regression/non-dominating-inst.ll.policy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/test/regression/non-dominating-inst.ll.policy -------------------------------------------------------------------------------- /test/regression/sccp-block-fold.ll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/test/regression/sccp-block-fold.ll -------------------------------------------------------------------------------- /test/regression/sccp-block-fold.ll.policy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/test/regression/sccp-block-fold.ll.policy -------------------------------------------------------------------------------- /test/static.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/test/static.c -------------------------------------------------------------------------------- /test/test_support.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/test/test_support.py -------------------------------------------------------------------------------- /test/wildcard-field-instrumentation.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/test/wildcard-field-instrumentation.c -------------------------------------------------------------------------------- /test/wildcard-function-instrumentation.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cadets/loom/HEAD/test/wildcard-function-instrumentation.c --------------------------------------------------------------------------------