10 Commits (666c2493ecb6b95b4871885db20ba85726005acf)

Author SHA1 Message Date
theraven 0dcb0885bf Update opts to work with LLVM trunk (3.3). 13 years ago
theraven 86d5f028a4 Don't remove ivar offset variables, even if we aren't using them. 14 years ago
theraven abff244ef9 Started 1.6.1 release announcement, updated LLVM optimisations to work with LLVM 3.1. 14 years ago
theraven 705135bb89 Some fixes to the Objective-C optimisation passes. Tested by compiling GNUstep base with clang at -O3 + all of the optimisations that this library enables at O3 and then running the test suite - results, looking good. Still to do before the release: turn objc_msgSend() into objc_msg_lookup_sender() and insert caching when not optimising for size. 14 years ago
theraven b68a5dda6d Get the libobjc2 optimisations building again with LLVM trunk. 15 years ago
theraven 8f423d0e29 Fix non-fragile ivar short-circuiting (i.e. hard-code the CORRECT ivar addresses, don't make foo and foobar have the same offset). 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 1918888ce1 Added LoopIMPCachePass. This pass automatically performs IMP caching on all loops.
Microbenchmark that just sends a message that does nothing 1000000000 times in a loop goes from taking 10.2 seconds to taking 4.7 after running the pass.
16 years ago
theraven 93251416eb Added LLVM optimisation passes for libobjc2. 16 years ago