Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JIT should write bytes more efficiently, allow machine code deallocation, allow growing code buffer #841

Closed
llvmbot opened this issue Dec 2, 2004 · 6 comments
Assignees
Labels
bugzilla Issues migrated from bugzilla enhancement Improving things as opposed to bug fixing, e.g. new or missing feature mcjit slow-compile

Comments

@llvmbot
Copy link
Collaborator

llvmbot commented Dec 2, 2004

Bugzilla Link 469
Resolution FIXED
Resolved on Feb 22, 2010 12:46
Version 1.0
OS All
Reporter LLVM Bugzilla Contributor

Extended Description

I'm using LLVM as a JIT engine, from a simple C++ driver (interpreter, actually).
It creates lots of code, and I recently clocked it at ~10,000 cycles per byte
of code generated. This is just a place-holder for now (sorry for the noise) but
I'll add concrete figures/profiling data as I get around to doing proper tests.
I also intend to hack up a simple benchmark that I can port across LLVM, Parrot
and libjit, just to see how they compare (in terms of MB/sec of x86 emitted for
some simple test case)

I'd appreciate it if anyone in the know would brain-dump any odd JIT
performance-related TODOs here. I'm aware of other bugzilla enteries, but I'll
kick off yet another entry here with a comment from Chris the other day:

we were just talking today about how the MachineCodeEmitter interface
needs to be changed to not use a virtual method dispatch per byte

Will paypal $1 to whoever fixes this. How's that for incentive! ;)

10,000 clocks is a lot you guys... ;)

@llvmbot
Copy link
Collaborator Author

llvmbot commented Dec 2, 2004

assigned to @lattner

@lattner
Copy link
Collaborator

lattner commented Aug 24, 2005

The recent changes to the register allocator related stuff have improved this situation fairly substantially.
Can you make this bug more specific so we have some hope of ever closing it?

-Chris

@lattner
Copy link
Collaborator

lattner commented Apr 25, 2006

This bug has no chance of ever being closed, so I'm changing it to something specific. :)

In particular, the JIT code emitter interface should:

  1. Not require one virtual method call for every byte (on x86) or word (on RISCs) emitted.
  2. The JIT emitter should support deallocating memory for previously compiled functions.
  3. The JIT emitter should not preallocate an ungrowable 16M chunk of memory for function bodies.

I am scheduled to start working on this the first week or two of May.

-Chris

@lattner
Copy link
Collaborator

lattner commented May 2, 2006

mine

@lattner
Copy link
Collaborator

lattner commented May 2, 2006

#​1 is done.

@lattner
Copy link
Collaborator

lattner commented May 12, 2006

Finally, at long last, this patch implements ExecutionEngine::freeMachineCodeForFunction.
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20060508/034740.html

-Chris

@llvmbot llvmbot transferred this issue from llvm/llvm-bugzilla-archive Dec 3, 2021
@Endilll Endilll added enhancement Improving things as opposed to bug fixing, e.g. new or missing feature and removed missing-feature labels Aug 15, 2023
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bugzilla Issues migrated from bugzilla enhancement Improving things as opposed to bug fixing, e.g. new or missing feature mcjit slow-compile
Projects
None yet
Development

No branches or pull requests

3 participants