[Lihat edit riwayat untuk jawaban yang sangat berbeda yang sekarang pada dasarnya sudah usang.]
Ya, ada beberapa kompiler JIT untuk C dan / atau C ++.
CLing (seperti yang Anda tebak dari game) didasarkan pada Dentang / LLVM. Kerjanya seperti seorang juru bahasa. Artinya, Anda memberinya beberapa kode sumber, memberikan perintah untuk menjalankannya, dan itu berjalan. Penekanan di sini terutama pada kenyamanan dan kompilasi cepat, bukan optimalisasi maksimal. Dengan demikian, meskipun secara teknis jawaban untuk pertanyaan itu sendiri, ini tidak benar-benar sesuai dengan niat OP.
Kemungkinan lain adalah NativeJIT . Ini cocok dengan pertanyaan yang agak berbeda. Secara khusus, ia tidak menerima kode sumber C atau C ++, dan kompilasi dan jalankan. Sebaliknya, ini adalah kompiler kecil yang dapat Anda kompilasi ke dalam program C ++ Anda. Ia menerima ekspresi yang pada dasarnya dinyatakan sebagai EDSL di dalam program C ++ Anda, dan menghasilkan kode mesin aktual dari itu, yang kemudian dapat Anda jalankan. Ini lebih cocok dengan kerangka kerja di mana Anda dapat mengkompilasi sebagian besar program Anda dengan kompiler normal, tetapi memiliki beberapa ekspresi yang Anda tidak akan tahu sampai run-time, yang ingin Anda jalankan dengan sesuatu yang mendekati kecepatan eksekusi optimal.
Adapun maksud yang jelas dari pertanyaan asli, saya pikir poin dasar dari jawaban asli saya masih berdiri: sementara kompiler JIT dapat beradaptasi dengan hal-hal seperti data yang bervariasi dari satu eksekusi ke yang berikutnya, atau bahkan bervariasi secara dinamis selama satu eksekusi, kenyataannya adalah bahwa ini membuat perbedaan yang relatif kecil setidaknya sebagai aturan umum. Dalam kebanyakan kasus, menjalankan compiler pada saat run time berarti Anda harus melepaskan sedikit optimisasi, jadi yang terbaik yang biasanya Anda harapkan adalah bahwa itu mendekati secepat kompilator konvensional akan menghasilkan.
Meskipun dimungkinkan untuk mendalilkan situasi di mana informasi yang tersedia untuk kompiler JIT dapat memungkinkannya untuk menghasilkan kode yang jauh lebih baik daripada kompiler konvensional, contoh-contoh kejadian ini dalam praktek tampaknya sangat tidak biasa (dan dalam kebanyakan kasus di mana saya dapat memverifikasi itu terjadi, itu benar-benar karena masalah dalam kode sumber, bukan dengan model kompilasi statis).