10 Commits (c0123c5be36bbb1817cfc69bec6b2853d1165ff0)

Author SHA1 Message Date
theraven d99a8b19ed Remove debugging statements. 14 years ago
theraven 286892936d Teach the optimisations to work in the presence of exception handling and if the front end emits objc_msgSend() instead of indirect lookups.
The GNUstep-base test suite now passes when compiled with:

 -fno-objc-legacy-dispatch -Xclang -load -Xclang /path/to/libGNUObjCRuntime.so -O3
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 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 352dfe2d93 Removed some unneeded #includes. 16 years ago
theraven dfc4a0286b Factored out code that performs IMP caching into a separate class. This can now be used by other passes that cache IMPs outside of loops (for example, always caching class messages because they always have the same receiver). 16 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