llvm-project/compiler-rt/lib
Alexander Potapenko bd53f597de This patch adds two methods, __asan_allocate_island and __asan_deallocate_island
and switches our interceptors to using them instead of the default
vm_allocate-based approach used by mach_override_ptr.

To simplify the code, a fixed memory mapping is used for the allocation pool --
note that we can't mmap an arbitrary chunk of memory, because the shadow memory hasn't been mapped yet
(for the reasons discussed in http://code.google.com/p/address-sanitizer/issues/detail?id=24, we cannot map the shadow earlier)

The patch drops the program startup time from several second to half a second,
which speeds up the execution of ASan tests noticeably.
Because of the virtual memory size occupied by the programs it's hard
to speed up the shutdown time, which would've also helped the tests.

llvm-svn: 148116
2012-01-13 16:13:58 +00:00
..
arm build: Add ModuleName per-subdir variable as a way to organize the different 2011-12-02 02:42:07 +00:00
asan This patch adds two methods, __asan_allocate_island and __asan_deallocate_island 2012-01-13 16:13:58 +00:00
i386 build: Add ModuleName per-subdir variable as a way to organize the different 2011-12-02 02:42:07 +00:00
ppc build: Add ModuleName per-subdir variable as a way to organize the different 2011-12-02 02:42:07 +00:00
profile build: Add ModuleName per-subdir variable as a way to organize the different 2011-12-02 02:42:07 +00:00
x86_64 build: Add ModuleName per-subdir variable as a way to organize the different 2011-12-02 02:42:07 +00:00
CMakeLists.txt Update CMake build system with target arch source file lists. 2009-10-29 00:07:46 +00:00
Makefile.mk build: Add ModuleName per-subdir variable as a way to organize the different 2011-12-02 02:42:07 +00:00
absvdi2.c lib: Eliminate direct include of stdlib.h from files that used to (potentially) 2011-11-16 01:19:26 +00:00
absvsi2.c lib: Eliminate direct include of stdlib.h from files that used to (potentially) 2011-11-16 01:19:26 +00:00
absvti2.c lib: Eliminate direct include of stdlib.h from files that used to (potentially) 2011-11-16 01:19:26 +00:00
adddf3.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
addsf3.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
addvdi3.c lib: Eliminate direct include of stdlib.h from files that used to (potentially) 2011-11-16 01:19:26 +00:00
addvsi3.c lib: Eliminate direct include of stdlib.h from files that used to (potentially) 2011-11-16 01:19:26 +00:00
addvti3.c lib: Eliminate direct include of stdlib.h from files that used to (potentially) 2011-11-16 01:19:26 +00:00
apple_versioning.c don't add version info for static library 2011-04-14 00:40:20 +00:00
ashldi3.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
ashlti3.c license change 2010-11-16 22:13:33 +00:00
ashrdi3.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
ashrti3.c license change 2010-11-16 22:13:33 +00:00
assembly.h Refactor DEFINE_COMPILERRT_FUNCTION. 2011-08-22 21:49:47 +00:00
clear_cache.c Fix missing include of int_lib.h and ppc ifdef for FreeBSD. 2012-01-03 18:59:25 +00:00
clzdi2.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
clzsi2.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
clzti2.c license change 2010-11-16 22:13:33 +00:00
cmpdi2.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
cmpti2.c license change 2010-11-16 22:13:33 +00:00
comparedf2.c Revert "Split single & double comparison routines into separate implementation 2011-03-25 18:45:39 +00:00
comparesf2.c Revert "Split single & double comparison routines into separate implementation 2011-03-25 18:45:39 +00:00
ctzdi2.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
ctzsi2.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
ctzti2.c license change 2010-11-16 22:13:33 +00:00
divdc3.c lib: Finish int_math.h definitions using compiler builtins and eliminate 2011-11-16 07:33:06 +00:00
divdf3.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
divdi3.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
divmoddi4.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
divmodsi4.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
divsc3.c lib: Finish int_math.h definitions using compiler builtins and eliminate 2011-11-16 07:33:06 +00:00
divsf3.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
divsi3.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
divti3.c license change 2010-11-16 22:13:33 +00:00
divxc3.c lib: Finish int_math.h definitions using compiler builtins and eliminate 2011-11-16 07:33:06 +00:00
enable_execute_stack.c lib: Include stdbool.h in int_lib.h, and eliminate duplicate includes from a number of source files. 2011-11-15 19:02:22 +00:00
eprintf.c lib: Eliminate direct include of stdlib.h from files that used to (potentially) 2011-11-16 01:19:26 +00:00
extendsfdf2.c lib: Include stdbool.h in int_lib.h, and eliminate duplicate includes from a number of source files. 2011-11-15 19:02:22 +00:00
ffsdi2.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
ffsti2.c license change 2010-11-16 22:13:33 +00:00
fixdfdi.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
fixdfsi.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
fixdfti.c license change 2010-11-16 22:13:33 +00:00
fixsfdi.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
fixsfsi.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
fixsfti.c license change 2010-11-16 22:13:33 +00:00
fixunsdfdi.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
fixunsdfsi.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
fixunsdfti.c license change 2010-11-16 22:13:33 +00:00
fixunssfdi.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
fixunssfsi.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
fixunssfti.c license change 2010-11-16 22:13:33 +00:00
fixunsxfdi.c license change 2010-11-16 22:13:33 +00:00
fixunsxfsi.c license change 2010-11-16 22:13:33 +00:00
fixunsxfti.c license change 2010-11-16 22:13:33 +00:00
fixxfdi.c license change 2010-11-16 22:13:33 +00:00
fixxfti.c license change 2010-11-16 22:13:33 +00:00
floatdidf.c lib: Include float.h in int_lib.h, and eliminate duplicate includes from a number of source files. 2011-11-16 00:20:36 +00:00
floatdisf.c lib: Include float.h in int_lib.h, and eliminate duplicate includes from a number of source files. 2011-11-16 00:20:36 +00:00
floatdixf.c license change 2010-11-16 22:13:33 +00:00
floatsidf.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
floatsisf.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
floattidf.c lib: Include float.h in int_lib.h, and eliminate duplicate includes from a number of source files. 2011-11-16 00:20:36 +00:00
floattisf.c lib: Include float.h in int_lib.h, and eliminate duplicate includes from a number of source files. 2011-11-16 00:20:36 +00:00
floattixf.c lib: Include float.h in int_lib.h, and eliminate duplicate includes from a number of source files. 2011-11-16 00:20:36 +00:00
floatundidf.c lib: Include float.h in int_lib.h, and eliminate duplicate includes from a number of source files. 2011-11-16 00:20:36 +00:00
floatundisf.c lib: Include float.h in int_lib.h, and eliminate duplicate includes from a number of source files. 2011-11-16 00:20:36 +00:00
floatundixf.c license change 2010-11-16 22:13:33 +00:00
floatunsidf.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
floatunsisf.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
floatuntidf.c lib: Include float.h in int_lib.h, and eliminate duplicate includes from a number of source files. 2011-11-16 00:20:36 +00:00
floatuntisf.c lib: Include float.h in int_lib.h, and eliminate duplicate includes from a number of source files. 2011-11-16 00:20:36 +00:00
floatuntixf.c lib: Include float.h in int_lib.h, and eliminate duplicate includes from a number of source files. 2011-11-16 00:20:36 +00:00
fp_lib.h lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
gcc_personality_v0.c lib/gcc_personality_v0: Remove an unnecessary include. 2011-11-16 01:19:29 +00:00
int_endianness.h Add some basic mingw support. 2012-01-12 21:13:48 +00:00
int_lib.h lib: Finish int_math.h definitions using compiler builtins and eliminate 2011-11-16 07:33:06 +00:00
int_math.h lib/int_math: Some versions of GCC don't provide __builtin_isfinite. Support 2011-11-16 18:56:55 +00:00
int_types.h lib: Rename endianness.h to int_endianness.h (for consistency) and tidy up a bit. 2011-11-15 18:56:21 +00:00
int_util.c lib/int_util: My refactoring to allow shared utility code had a fatal flaw when 2011-11-29 19:44:14 +00:00
int_util.h lib/int_util: My refactoring to allow shared utility code had a fatal flaw when 2011-11-29 19:44:14 +00:00
lshrdi3.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
lshrti3.c license change 2010-11-16 22:13:33 +00:00
moddi3.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
modsi3.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
modti3.c license change 2010-11-16 22:13:33 +00:00
muldc3.c lib: Finish int_math.h definitions using compiler builtins and eliminate 2011-11-16 07:33:06 +00:00
muldf3.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
muldi3.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
mulodi4.c lib: Eliminate direct include of stdlib.h from files that used to (potentially) 2011-11-16 01:19:26 +00:00
mulosi4.c lib: Eliminate direct include of stdlib.h from files that used to (potentially) 2011-11-16 01:19:26 +00:00
muloti4.c lib: Eliminate direct include of stdlib.h from files that used to (potentially) 2011-11-16 01:19:26 +00:00
mulsc3.c lib: Finish int_math.h definitions using compiler builtins and eliminate 2011-11-16 07:33:06 +00:00
mulsf3.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
multi3.c license change 2010-11-16 22:13:33 +00:00
mulvdi3.c lib: Eliminate direct include of stdlib.h from files that used to (potentially) 2011-11-16 01:19:26 +00:00
mulvsi3.c lib: Eliminate direct include of stdlib.h from files that used to (potentially) 2011-11-16 01:19:26 +00:00
mulvti3.c lib: Eliminate direct include of stdlib.h from files that used to (potentially) 2011-11-16 01:19:26 +00:00
mulxc3.c lib: Finish int_math.h definitions using compiler builtins and eliminate 2011-11-16 07:33:06 +00:00
negdf2.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
negdi2.c license change 2010-11-16 22:13:33 +00:00
negsf2.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
negti2.c license change 2010-11-16 22:13:33 +00:00
negvdi2.c lib: Eliminate direct include of stdlib.h from files that used to (potentially) 2011-11-16 01:19:26 +00:00
negvsi2.c lib: Eliminate direct include of stdlib.h from files that used to (potentially) 2011-11-16 01:19:26 +00:00
negvti2.c lib: Eliminate direct include of stdlib.h from files that used to (potentially) 2011-11-16 01:19:26 +00:00
paritydi2.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
paritysi2.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
parityti2.c license change 2010-11-16 22:13:33 +00:00
popcountdi2.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
popcountsi2.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
popcountti2.c license change 2010-11-16 22:13:33 +00:00
powidf2.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
powisf2.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
powitf2.c license change 2010-11-16 22:13:33 +00:00
powixf2.c license change 2010-11-16 22:13:33 +00:00
subdf3.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
subsf3.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
subvdi3.c lib: Eliminate direct include of stdlib.h from files that used to (potentially) 2011-11-16 01:19:26 +00:00
subvsi3.c lib: Eliminate direct include of stdlib.h from files that used to (potentially) 2011-11-16 01:19:26 +00:00
subvti3.c lib: Eliminate direct include of stdlib.h from files that used to (potentially) 2011-11-16 01:19:26 +00:00
trampoline_setup.c Fix missing include of int_lib.h and ppc ifdef for FreeBSD. 2012-01-03 18:59:25 +00:00
truncdfsf2.c lib: Include stdbool.h in int_lib.h, and eliminate duplicate includes from a number of source files. 2011-11-15 19:02:22 +00:00
ucmpdi2.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
ucmpti2.c license change 2010-11-16 22:13:33 +00:00
udivdi3.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
udivmoddi4.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
udivmodsi4.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
udivmodti4.c Don't redeclare sr. 2011-07-28 23:15:41 +00:00
udivsi3.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
udivti3.c license change 2010-11-16 22:13:33 +00:00
umoddi3.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
umodsi3.c lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity. 2011-11-15 18:34:44 +00:00
umodti3.c license change 2010-11-16 22:13:33 +00:00