Commit Graph

827 Commits

Author SHA1 Message Date
Erik Eckstein
5526a938e0 cmake: _compile_swift_files now accepts multiple output files.
Swift SVN r26257
2015-03-18 09:58:05 +00:00
Erik Eckstein
5e6ec85b4c CMake: Support compiling without -wmo and allow explicit specification of module name.
Swift SVN r25979
2015-03-11 11:53:30 +00:00
Dmitri Hrybenko
af5cda1601 cmake: allow installing a copy of Swift dylibs into an additional directory
rdar://20080564

Swift SVN r25971
2015-03-11 05:46:07 +00:00
Dmitri Hrybenko
89d1d924bd CMake: unbreak the build on Linux after stdlib reorganization
Runtime should use LINK_LIBRARIES to link to ICU, since it is a static
archive, and we need this link dependency to be propagated to the
libswiftSwiftCore library.  I have no idea why it linked correctly
worked before.

Swift SVN r25881
2015-03-09 10:09:36 +00:00
Dmitri Hrybenko
350248dae5 Reorganize the directory structure under 'stdlib'
The standard library has grown significantly, and we need a new
directory structure that clearly reflects the role of the APIs, and
allows future growth.

See stdlib/{public,internal,private}/README.txt for more information.

Swift SVN r25876
2015-03-09 05:26:05 +00:00
Dmitri Hrybenko
71424c49bb cmake: unbreak the usecase of cross-compiling the compiler while
disabling the standard library

In almost all cases, CMake will happily operate on undefined variables,
treating them as empty, but for some reason list(REMOVE_ITEM) is an
exception.

Swift SVN r25835
2015-03-07 04:18:53 +00:00
Michael Gottesman
e16a050c8a [+0 self] Add a cmake flag to enable guaranteed self.
The reason why this is necessary is that I need to update parts of the runtime
for +0 self. I am going to use a -D flag to do this implying I need the build
system's help. Since I already have the flag I am also going to wire up the
emission of +0 self code from the compiler to be triggered off this as well.

It is of course disabled by default.

<rdar://problem/20080934>

Swift SVN r25833
2015-03-07 03:23:12 +00:00
Dmitri Hrybenko
bc5bd454bd cmake: fix the separate SDK overlay build
rdar://20051956

Swift SVN r25791
2015-03-05 23:13:56 +00:00
Greg Parker
26d80cf470 [build] Fix 16K segment alignment on iOS.
Swift SVN r25628
2015-02-28 00:30:12 +00:00
Michael Gottesman
6ff94330ae Add SwiftRuntime dtrace provider with probes for retain, release, allocateObject, deallocateObject.
Now if you want to get these dynamic metrics from the runtime all you
need to do is:

1. Configure Swift with -DSWIFT_RUNTIME_ENABLE_DTRACE=YES
2. Run your routine with the command:

sudo dtrace -s ./utils/runtime_statistics.d -c "$MY_COMMAND_LINE"

After your app finishes running, it will dump out the counts. This is a
much more efficient and low maintenance way to get such statistics than
custom instrumenting the code.

Nothing is changed if -DSWIFT_RUNTIME_ENABLE_DTRACE is not set.

Swift SVN r25264
2015-02-13 06:42:37 +00:00
Greg Parker
6aa98d9c10 [build] Fix __TEXT,__info_plist and -Wl,-application_extension settings.
Swift SVN r25160
2015-02-11 02:58:57 +00:00
Dmitri Hrybenko
6058d291ca CMake: allow the SDK overlay to be built separately from the compiler
and the stdandard library

rdar://19703353

Swift SVN r25139
2015-02-10 21:57:03 +00:00
Sonny Falk
f190c2de81 [CMake, build-script] Add support for cross-compiling tools.
This adds support to build-script and cmake scripts for cross-compiling the host tools in addition to stdlib.

To cross-compile, build-script-impl now accepts --cross-compile-tools-deployment-targets with a space separated list of targets to cross compile host Swift tools for.

For example: $ build-script ...other-args... -- --cross-compile-tools-deployment-targets="iphoneos-arm64 iphoneos-armv7".

When installing cross-compiled tools, it now also merges and runs lipo to produce fat binaries by merging the cross-compiled target architectures.

Swift SVN r24712
2015-01-25 01:36:02 +00:00
Dmitri Hrybenko
458640ef2a CMake: don't rely on autolinking when building Swift code
Autolinking is only available on Apple platforms.

Swift SVN r24685
2015-01-23 08:33:32 +00:00
Erik Eckstein
7446cee72b Re-enable SLPVectorizer in stdlib build (revert r24342 and r24345)
The SLPVectorizer is now faster (rdar://problem/19430955): it needs 2.5% of stdlib compile time.
Related radar: rdar://problem/19433841



Swift SVN r24511
2015-01-19 15:22:33 +00:00
Dmitri Hrybenko
72a26f2371 CMake: simplify passing swift driver parameters
Swift SVN r24440
2015-01-15 04:44:58 +00:00
Mark Lacey
387418d034 Document the need to reenable the SLP vectorizer for the stdlib.
Swift SVN r24345
2015-01-10 01:09:31 +00:00
Mark Lacey
211cc83e4e Disable the LLVM SLP vectorizer for the stdlib build.
This shaves around 5 seconds off the stdlib build if you're using a
release/no-assert LLVM (so around 12.5% of total time if you're also
using a release/no-assert swift, or around 4% of total time if you're
using a debug/assert swift).

The underlying LLVM issue is tracked by rdar://problem/19430955.

I saw no significant reproducible performance loss due to this change.

Resolves rdar://problem/19431821.

Swift SVN r24342
2015-01-10 00:51:08 +00:00
Greg Parker
6c6863e342 [cmake] Remove a reference to a dead variable.
Swift SVN r24289
2015-01-09 00:18:04 +00:00
Michael Gottesman
9243f82d08 [cmake] Add new option --extra-swift-options that enables one to pass cmake flags to specific libraries by pattern matching a regexp upon their name.
Often times one wants to pass certain flags to swift when building
specific libraries and not others. This has in the past required
manually modifying the cmake system. This new option allows one to use
string regexps based on the module_name of a library to enable and
disable various flags. The way this works is you pass the following into
build-script:

--extra-swift-options="${REGEX1};${FLAGS1_WITH_SEMICOLONS_ESCAPED}"
--extra-swift-options="${REGEX2};${FLAGS2_WITH_SEMICOLONS_ESCAPED}"
--extra-swift-options="${REGEX3};${FLAGS3_WITH_SEMICOLONS_ESCAPED}"
--extra-swift-options="${REGEX4};${FLAGS4_WITH_SEMICOLONS_ESCAPED}"
--extra-swift-options="${REGEX5};${FLAGS5_WITH_SEMICOLONS_ESCAPED}"

Every library that matches REGEPN will have FLAGSN_... appended to their
swift flags. For instance if I did the following:

build-script --extra-swift-options="Swift;-Xfrontend\;-sil-print-pass-name" --extra-swift-options='^Swift$;-Xllvm\;-debug-only=sil-arc-opts" ...

CMake will output the following:

-- Matched 'Swift' to module 'Swift'. Compiling Swift with special flags: -Xfrontend;-sil-print-pass-name
-- Matched '^Swift$' to module 'Swift'. Compiling Swift with special flags: -Xllvm;-debug-only=sil-arc-opts
-- Matched 'Swift' to module 'SwiftExperimental'. Compiling SwiftExperimental with special flags: -Xfrontend;-sil-print-pass-name
-- Matched 'Swift' to module 'SwiftStructures'. Compiling SwiftStructures with special flags: -Xfrontend;-sil-print-pass-name
-- Matched 'Swift' to module 'SwiftStructuresGraphBFS'. Compiling SwiftStructuresGraphBFS with special flags: -Xfrontend;-sil-print-pass-name

stating which regexp was matched, the module it was matched to and the
added flags. This ensures that one only gets matches for what one wants.

Swift SVN r24271
2015-01-08 06:33:09 +00:00
Arnold Schwaighofer
292ecc49ca Revert "Readd SWIFT_STDLIB_CORE_EXTRA_FLAGS added in r24055"
This reverts commit r24248.

The flag was just renamed to SWIFT_EXTRA_EXPERIMENTAL_FLAGS_STDLIB_CORE.

Swift SVN r24251
2015-01-08 00:03:49 +00:00
Arnold Schwaighofer
a3b757066e Readd SWIFT_STDLIB_CORE_EXTRA_FLAGS added in r24055
This got lost in the cmake upgrade.

Swift SVN r24248
2015-01-07 23:42:22 +00:00
Dmitri Hrybenko
4f080f8bdc CMake: remove dead code for old AddressSanitizer setup
Swift SVN r24244
2015-01-07 21:05:22 +00:00
Argyrios Kyrtzidis
e4d1f7523f [CMake] In '_compile_swift_files' function, 'objdir' is supposed to be set to the parent path, not the filename.
This worked in standalone build by creating a directory that never got used but it failed in a non-standalone build.
Fix tracked with Dmitri's help.

Swift SVN r24180
2015-01-05 18:47:49 +00:00
Dmitri Hrybenko
269de5fa7f CMake: allow mixed configurations of LLVM and Swift with Xcode
Swift SVN r24177
2015-01-05 07:18:13 +00:00
Dmitri Hrybenko
5ff0612224 CMake: stop using LLVM_COMMON_LIBS, it is not set anywhere
Swift SVN r24174
2015-01-05 07:18:10 +00:00
Dmitri Hrybenko
6670bb76ec Rewrite the CMake build system
Swift SVN r24124
2014-12-23 22:15:30 +00:00