Coder Social home page Coder Social logo

Better tracing about lineiform HOT 2 OPEN

chc4 avatar chc4 commented on September 26, 2024
Better tracing

from lineiform.

Comments (2)

nbp avatar nbp commented on September 26, 2024

Intel CPUs have a feature which allow recording the traces of taken branches in the form of a record with a from & to pointer. Look for "branch trace" in the intel documentation.

I never used it, but this could potentially be used to record traces of execution of any code, even the one generated by the Rust compiler. Thus removing the need for instrumenting the code to recompile it later.

from lineiform.

chc4 avatar chc4 commented on September 26, 2024

The tracing in this issue is actually about switching to use the tracing crate for diagnostics, not collecting JIT traces :)

Intel BTS and PT are both very cool technologies, and would be a good fit if we needed to. Currently Lineiform is designed as a method based JIT, not a tracing JIT, so we never record execution traces, only inline and constant fold closed environment members in the closure inputs. There are some tradeoffs between method and tracing JIT, where tracing is really good at optimizing hot loops and deep call stacks, but I don't think there is a consensus on which is definitively better, so I'm just going to stick to method-based for now.

There is another meta-JIT project I know of (https://github.com/ykjit/yk) that is planning on using Intel PT to collect JIT traces, and I'm curious to see how it turns out.

from lineiform.

Related Issues (18)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.