12 Commits (27d4bd055a955cf737734a650889eeafe297e2bc)

Author SHA1 Message Date
theraven 0dcb0885bf Update opts to work with LLVM trunk (3.3). 13 years ago
theraven 8cf5e0412f Update optimisation to work with LLVM trunk, remove the Makefile and use CMake for building the passes (out of tree builds are now easier). 14 years ago
theraven abff244ef9 Started 1.6.1 release announcement, updated LLVM optimisations to work with LLVM 3.1. 14 years ago
theraven 02fe58d85a Fix use-after-free in speculative inlining pass. 14 years ago
theraven b68a5dda6d Get the libobjc2 optimisations building again with LLVM trunk. 15 years ago
theraven 4f31ed8acd Some tweaks to optimisation order. 15 years ago
theraven 5705845e98 Fixed some bugs with the optimisation passes and introduced support for automatically running them (requires LLVM 3 + a patch that is not yet in trunk, but should be soon). 15 years ago
theraven 9d5452b147 Fixed LLVM passes to compile with recent LLVM.
Made class caching pass cache classes in a static variable if the original class is not available.
15 years ago
theraven 23447feca5 Profile-driven inlining of Objective-C methods. 16 years ago
theraven 9ea9a6cf41 Made inlining conditional on inlining actually being sensible. 16 years ago
theraven 6a58d3d49d Added unfinished inliner that uses type feedback info to inline instance methods.
Made class method inliner also inline message sends to super.

Various updates caused by clang now attaching more sensible metadata to the IR.
16 years ago
theraven 6cac2816cc Added speculative inlining of class messages. Currently inlines all that it can, without deciding whether it's sensible. 16 years ago