[llvm-commits] [compiler-rt] r95132 - in /compiler-rt/trunk: lib/arm/sync_synchronize.S make/platform/darwin_bni.mk

Evan Cheng evan.cheng at apple.com
Tue Feb 2 14:02:26 PST 2010


Hi Nick,

It actually has nothing to do with -fno-builtin, which only turns off codegen for functions which with __builtin_ prefix.

Evan

On Feb 2, 2010, at 1:34 PM, Nick Kledzik wrote:

> Author: kledzik
> Date: Tue Feb  2 15:34:04 2010
> New Revision: 95132
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=95132&view=rev
> Log:
> add __sync_synchronize.  Needed by compiler when emitting thumb1 with -fno-builtin
> 
> Added:
>    compiler-rt/trunk/lib/arm/sync_synchronize.S
> Modified:
>    compiler-rt/trunk/make/platform/darwin_bni.mk
> 
> Added: compiler-rt/trunk/lib/arm/sync_synchronize.S
> URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/arm/sync_synchronize.S?rev=95132&view=auto
> 
> ==============================================================================
> --- compiler-rt/trunk/lib/arm/sync_synchronize.S (added)
> +++ compiler-rt/trunk/lib/arm/sync_synchronize.S Tue Feb  2 15:34:04 2010
> @@ -0,0 +1,33 @@
> +//===-- sync_synchronize - Implement memory barrier * ----------------------===//
> +//
> +//                     The LLVM Compiler Infrastructure
> +//
> +// This file is distributed under the University of Illinois Open Source
> +// License. See LICENSE.TXT for details.
> +//
> +//===----------------------------------------------------------------------===//
> +
> +#include "../assembly.h"
> +
> +//
> +// When compiling a use of the gcc built-in __sync_synchronize() in thumb1 mode
> +// the compiler may emit a call to __sync_synchronize.  
> +// On Darwin the implementation jumps to an OS supplied function named 
> +// OSMemoryBarrier
> +//
> +
> +	.text
> +	.syntax unified
> +
> +#if __APPLE__
> +
> +DEFINE_COMPILERRT_PRIVATE_FUNCTION(__sync_synchronize)
> +	stmfd	sp!, {r7, lr}
> +	add		r7, sp, #0
> +	bl		_OSMemoryBarrier
> +	ldmfd	sp!, {r7, pc}
> +
> +	// tell linker it can break up file at label boundaries
> +	.subsections_via_symbols
> +		
> +#endif
> 
> Modified: compiler-rt/trunk/make/platform/darwin_bni.mk
> URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/make/platform/darwin_bni.mk?rev=95132&r1=95131&r2=95132&view=diff
> 
> ==============================================================================
> --- compiler-rt/trunk/make/platform/darwin_bni.mk (original)
> +++ compiler-rt/trunk/make/platform/darwin_bni.mk Tue Feb  2 15:34:04 2010
> @@ -54,6 +54,7 @@
>                 subdf3vfp subsf3vfp truncdfsf2vfp unorddf2vfp unordsf2vfp \
>                 modsi3 umodsi3 udivsi3 divsi3 \
> 				switch8 switchu8 switch16 switch32 \
> -				restore_vfp_d8_d15_regs save_vfp_d8_d15_regs
> +				restore_vfp_d8_d15_regs save_vfp_d8_d15_regs \
> +				sync_synchronize 
> 
> VISIBILITY_HIDDEN := 0
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits





More information about the llvm-commits mailing list