Skip to content

Use LLVM_* attributes some more in the runtime #7406

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Feb 12, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions stdlib/public/runtime/ErrorObject.h
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down Expand Up @@ -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

Expand Down
6 changes: 3 additions & 3 deletions stdlib/public/runtime/HeapObject.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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) {
Expand Down
22 changes: 10 additions & 12 deletions stdlib/public/runtime/Leaks.h
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down