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