Use LLVM_* attributes in the runtime

This commit is contained in:
Hugh Bellamy
2017-02-11 17:29:33 +07:00
parent 006a423ab6
commit 00b7c2ed70
3 changed files with 18 additions and 18 deletions

View File

@@ -27,6 +27,9 @@
#include "swift/Runtime/Metadata.h"
#include "swift/Runtime/HeapObject.h"
#include "SwiftHashableSupport.h"
#include "llvm/Support/Compiler.h"
#include <atomic>
#if SWIFT_OBJC_INTEROP
# include <CoreFoundation/CoreFoundation.h>
@@ -205,9 +208,8 @@ SWIFT_RUNTIME_EXPORT
void swift_errorInMain(SwiftError *object);
SWIFT_RUNTIME_EXPORT
void swift_willThrow(SwiftError *object);
SWIFT_RUNTIME_EXPORT
void swift_unexpectedError(SwiftError *object)
__attribute__((__noreturn__));
SWIFT_RUNTIME_EXPORT LLVM_ATTRIBUTE_NORETURN
void swift_unexpectedError(SwiftError *object);
#if SWIFT_OBJC_INTEROP

View File

@@ -19,6 +19,7 @@
#include "swift/Runtime/Heap.h"
#include "swift/Runtime/Metadata.h"
#include "swift/ABI/System.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/MathExtras.h"
#include "MetadataCache.h"
#include "Private.h"
@@ -187,9 +188,8 @@ OpaqueValue *swift::swift_projectBox(HeapObject *o) {
}
// Forward-declare this, but define it after swift_release.
extern "C" LLVM_LIBRARY_VISIBILITY void
_swift_release_dealloc(HeapObject *object) SWIFT_CC(RegisterPreservingCC_IMPL)
__attribute__((__noinline__, __used__));
extern "C" LLVM_LIBRARY_VISIBILITY LLVM_ATTRIBUTE_NOINLINE LLVM_ATTRIBUTE_USED void
_swift_release_dealloc(HeapObject *object) SWIFT_CC(RegisterPreservingCC_IMPL);
void swift::swift_retain(HeapObject *object)
SWIFT_CC(RegisterPreservingCC_IMPL) {

View File

@@ -23,22 +23,20 @@
#include "../SwiftShims/Visibility.h"
#include "llvm/Support/Compiler.h"
namespace swift {
struct HeapObject;
}
SWIFT_RUNTIME_EXPORT
void swift_leaks_startTrackingObjects(const char *)
__attribute__((__noinline__, __used__));
SWIFT_RUNTIME_EXPORT
int swift_leaks_stopTrackingObjects(const char *)
__attribute__((__noinline__, __used__));
SWIFT_RUNTIME_EXPORT
void swift_leaks_startTrackingObject(swift::HeapObject *)
__attribute__((__noinline__, __used__));
SWIFT_RUNTIME_EXPORT
void swift_leaks_stopTrackingObject(swift::HeapObject *)
__attribute__((__noinline__, __used__));
SWIFT_RUNTIME_EXPORT LLVM_ATTRIBUTE_NOINLINE LLVM_ATTRIBUTE_USED
void swift_leaks_startTrackingObjects(const char *);
SWIFT_RUNTIME_EXPORT LLVM_ATTRIBUTE_NOINLINE LLVM_ATTRIBUTE_USED
int swift_leaks_stopTrackingObjects(const char *);
SWIFT_RUNTIME_EXPORT LLVM_ATTRIBUTE_NOINLINE LLVM_ATTRIBUTE_USED
void swift_leaks_startTrackingObject(swift::HeapObject *);
SWIFT_RUNTIME_EXPORT LLVM_ATTRIBUTE_NOINLINE LLVM_ATTRIBUTE_USED
void swift_leaks_stopTrackingObject(swift::HeapObject *);
#define SWIFT_LEAKS_START_TRACKING_OBJECT(obj) \
swift_leaks_startTrackingObject(obj)