This website requires JavaScript.
Explore
Help
Register
Sign In
Magic-Mirror
/
llvm-capstone
Watch
1
Star
0
Fork
0
You've already forked llvm-capstone
mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced
2025-02-19 09:26:59 +00:00
Code
Issues
Actions
2
Packages
Projects
Releases
Wiki
Activity
llvm-capstone
/
libcxxabi
History
Howard Hinnant
fcf732c7a6
A bug fix involving the updating of path_dst_ptr_to_static_ptr. Some minor code rearrangement optimizations (putting most likely 'if' first in an if-else series. And some major optimizations which involve stopping the search prior to an exhaustive walk over the entire tree. Some of these stops are because an ambiguity is detected earlier. And some of the short circuiting is due to the information from the bits __diamond_shaped_mask and __non_diamond_repeat_mask. The stress test checked in last night is now about 28% faster for the B<Width/2, Depth> -O3 case. I'm still playing with some more optimization possibilities but I'm not sure they will play out.
...
llvm-svn: 148153
2012-01-13 23:06:03 +00:00
..
include
Added __cxa_increment_exception_refcount, __cxa_decrement_exception_refcount, __cxa_current_primary_exception, __cxa_rethrow_primary_exception
2011-12-21 23:32:11 +00:00
src
A bug fix involving the updating of path_dst_ptr_to_static_ptr. Some minor code rearrangement optimizations (putting most likely 'if' first in an if-else series. And some major optimizations which involve stopping the search prior to an exhaustive walk over the entire tree. Some of these stops are because an ambiguity is detected earlier. And some of the short circuiting is due to the information from the bits __diamond_shaped_mask and __non_diamond_repeat_mask. The stress test checked in last night is now about 28% faster for the B<Width/2, Depth> -O3 case. I'm still playing with some more optimization possibilities but I'm not sure they will play out.
2012-01-13 23:06:03 +00:00
test
Enclosed is a stress test for dynamic_cast. It stresses both libc++abi, and clang itself. It creates a ridiculously large class hierarchy using variadic templates. You can specify both the width and depth of the class hierarchy. And you can specify whether the cast is to the actual run time type, or to an intermediate layer in the class. About 1/3 of the time I compile this, it crashes the compiler. There seems to be an uninitialized area of memory, and I'm probably blowing past an assumption on class hierarchy size within clang (and understandably so). I can get it work most of the time with a class hierarchy width of 20 and a depth of 7. I'm making timings with both -O3 and -Os, using both cast to root and cast to intermediate, on both libc++abi, and gcc's dynamic_cast. I've put the results in a comment/table at the bottom of the test.
2012-01-13 01:22:31 +00:00
www
Updated spec.html regarding __cxa_uncaught_exception.
2011-12-22 00:03:36 +00:00
CREDITS.TXT
credits adjustment
2011-12-22 16:00:06 +00:00
LICENSE.TXT
…