Skip to content

Commit 264b680

Browse files
authored
Merge branch 'master' into immortal-type-checker
2 parents 9d7a4b3 + 2a18ea7 commit 264b680

File tree

274 files changed

+5741
-4416
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

274 files changed

+5741
-4416
lines changed

CMakeLists.txt

Lines changed: 10 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -639,80 +639,52 @@ endif()
639639

640640
if("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "LINUX")
641641

642-
set(CMAKE_EXECUTABLE_FORMAT "ELF")
643642
set(SWIFT_HOST_VARIANT "linux" CACHE STRING
644643
"Deployment OS for Swift host tools (the compiler) [linux].")
645644

646-
# Calculate the host triple
647-
if("${SWIFT_HOST_TRIPLE}" STREQUAL "")
648-
if("${SWIFT_HOST_VARIANT_ARCH}" STREQUAL "x86_64")
649-
set(SWIFT_HOST_TRIPLE "x86_64-unknown-linux-gnu")
650-
elseif("${SWIFT_HOST_VARIANT_ARCH}" STREQUAL "i686")
651-
set(SWIFT_HOST_TRIPLE "i686-unknown-linux-gnu")
652-
elseif("${SWIFT_HOST_VARIANT_ARCH}" STREQUAL "aarch64")
653-
set(SWIFT_HOST_TRIPLE "aarch64-unknown-linux-gnu")
654-
elseif("${SWIFT_HOST_VARIANT_ARCH}" MATCHES "(powerpc64|powerpc64le)")
655-
set(SWIFT_HOST_TRIPLE "${SWIFT_HOST_VARIANT_ARCH}-unknown-linux-gnu")
656-
elseif("${SWIFT_HOST_VARIANT_ARCH}" MATCHES "s390x")
657-
set(SWIFT_HOST_TRIPLE "s390x-unknown-linux-gnu")
658-
elseif("${SWIFT_HOST_VARIANT_ARCH}" MATCHES "(armv6|armv7)")
659-
set(SWIFT_HOST_TRIPLE "${SWIFT_HOST_VARIANT_ARCH}-unknown-linux-gnueabihf")
660-
else()
661-
message(FATAL_ERROR "Unable to calculate triple for linux host on ${SWIFT_HOST_VARIANT_ARCH}")
662-
endif()
663-
endif()
664-
665645
# Should we build the standard library for the host?
666646
is_sdk_requested(LINUX swift_build_linux)
667647
if(swift_build_linux)
668-
configure_sdk_unix(LINUX "Linux" "linux" "${SWIFT_HOST_VARIANT}" "${SWIFT_HOST_VARIANT_ARCH}" "${SWIFT_HOST_TRIPLE}" "/")
648+
configure_sdk_unix("Linux" "${SWIFT_HOST_VARIANT_ARCH}")
669649
set(SWIFT_PRIMARY_VARIANT_SDK_default "${SWIFT_HOST_VARIANT_SDK}")
670650
set(SWIFT_PRIMARY_VARIANT_ARCH_default "${SWIFT_HOST_VARIANT_ARCH}")
671651
endif()
672652

673653
elseif("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "FREEBSD")
674654

675-
set(CMAKE_EXECUTABLE_FORMAT "ELF")
676655
set(SWIFT_HOST_VARIANT "freebsd" CACHE STRING
677656
"Deployment OS for Swift host tools (the compiler) [freebsd].")
678657

679-
# FIXME: Using the host OS version won't produce correct results for
680-
# cross-compilation.
681-
string(REPLACE "[-].*" "" FREEBSD_SYSTEM_VERSION ${CMAKE_SYSTEM_VERSION})
682-
message(STATUS "FreeBSD Version: ${FREEBSD_SYSTEM_VERSION}")
683-
configure_sdk_unix(FREEBSD "FreeBSD" "freebsd" "freebsd" "x86_64"
684-
"x86_64-unknown-freebsd${FREEBSD_SYSTEM_VERSION}" "/")
658+
configure_sdk_unix("FreeBSD" "${SWIFT_HOST_VARIANT_ARCH}")
685659
set(SWIFT_PRIMARY_VARIANT_SDK_default "${SWIFT_HOST_VARIANT_SDK}")
686-
set(SWIFT_PRIMARY_VARIANT_ARCH_default "x86_64")
660+
set(SWIFT_PRIMARY_VARIANT_ARCH_default "${SWIFT_HOST_VARIANT_ARCH}")
687661

688662
elseif("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "CYGWIN")
689663

690-
# set(CMAKE_EXECUTABLE_FORMAT "ELF")
691664
set(SWIFT_HOST_VARIANT "cygwin" CACHE STRING
692665
"Deployment OS for Swift host tools (the compiler) [cygwin].")
693666

694-
configure_sdk_unix(CYGWIN "Cygwin" "cygwin" "cygwin" "x86_64" "x86_64-unknown-windows-cygnus" "/")
667+
configure_sdk_unix("Cygwin" "${SWIFT_HOST_VARIANT_ARCH}")
695668
set(SWIFT_PRIMARY_VARIANT_SDK_default "${SWIFT_HOST_VARIANT_SDK}")
696-
set(SWIFT_PRIMARY_VARIANT_ARCH_default "x86_64")
669+
set(SWIFT_PRIMARY_VARIANT_ARCH_default "${SWIFT_HOST_VARIANT_ARCH}")
697670

698671
elseif("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "WINDOWS")
699672

700673
set(SWIFT_HOST_VARIANT "windows" CACHE STRING
701674
"Deployment OS for Swift host tools (the compiler) [windows].")
702675

703-
configure_sdk_windows(WINDOWS "Windows" "msvc" "${SWIFT_HOST_VARIANT_ARCH}")
676+
configure_sdk_windows("Windows" "msvc" "${SWIFT_HOST_VARIANT_ARCH}")
704677
set(SWIFT_PRIMARY_VARIANT_SDK_default "${SWIFT_HOST_VARIANT_SDK}")
705678
set(SWIFT_PRIMARY_VARIANT_ARCH_default "${SWIFT_HOST_VARIANT_ARCH}")
706679

707680
elseif("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "HAIKU")
708681

709-
set(CMAKE_EXECUTABLE_FORMAT "ELF")
710682
set(SWIFT_HOST_VARIANT "haiku" CACHE STRING
711683
"Deployment OS for Swift host tools (the compiler) [haiku].")
712684

713-
configure_sdk_unix(HAIKU "Haiku" "haiku" "haiku" "x86_64" "x86_64-unknown-haiku" "/")
685+
configure_sdk_unix("Haiku" "${SWIFT_HOST_VARIANT_ARCH}")
714686
set(SWIFT_PRIMARY_VARIANT_SDK_default "${SWIFT_HOST_VARIANT_SDK}")
715-
set(SWIFT_PRIMARY_VARIANT_ARCH_default "x86_64")
687+
set(SWIFT_PRIMARY_VARIANT_ARCH_default "${SWIFT_HOST_VARIANT_ARCH}")
716688

717689
elseif("${SWIFT_HOST_VARIANT_SDK}" MATCHES "(OSX|IOS*|TVOS*|WATCHOS*)")
718690

@@ -763,16 +735,10 @@ if(swift_build_android AND NOT "${SWIFT_ANDROID_NDK_PATH}" STREQUAL "")
763735
message(FATAL_ERROR "A Darwin or Linux host is required to build the Swift runtime for Android")
764736
endif()
765737

766-
if(("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin" AND NOT swift_build_osx) OR
767-
("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux" AND NOT swift_build_linux))
768-
set(SWIFT_PRIMARY_VARIANT_SDK_default "ANDROID")
769-
set(SWIFT_PRIMARY_VARIANT_ARCH_default "armv7")
770-
endif()
771-
772738
if("${SWIFT_SDK_ANDROID_ARCHITECTURES}" STREQUAL "")
773739
set(SWIFT_SDK_ANDROID_ARCHITECTURES armv7;aarch64)
774740
endif()
775-
configure_sdk_unix(ANDROID "Android" "android" "android" "${SWIFT_SDK_ANDROID_ARCHITECTURES}" "" "")
741+
configure_sdk_unix("Android" "${SWIFT_SDK_ANDROID_ARCHITECTURES}")
776742
endif()
777743

778744
# Should we cross-compile the standard library for Windows?
@@ -781,7 +747,7 @@ if(swift_build_windows AND NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")
781747
if("${SWIFT_SDK_WINDOWS_ARCHITECTURES}" STREQUAL "")
782748
set(SWIFT_SDK_WINDOWS_ARCHITECTURES aarch64;armv7;i686;x86_64)
783749
endif()
784-
configure_sdk_windows(WINDOWS "Windows" "msvc" "${SWIFT_SDK_WINDOWS_ARCHITECTURES}")
750+
configure_sdk_windows("Windows" "msvc" "${SWIFT_SDK_WINDOWS_ARCHITECTURES}")
785751
endif()
786752

787753
if("${SWIFT_SDKS}" STREQUAL "")

benchmark/single-source/NSStringConversion.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public func run_NSStringConversion(_ N: Int) {
2323
#if _runtime(_ObjC)
2424
let test:NSString = NSString(cString: "test", encoding: String.Encoding.ascii.rawValue)!
2525
for _ in 1...N * 10000 {
26-
_ = test as String
26+
blackHole(identity(test) as String)
2727
}
2828
#endif
2929
}

cmake/modules/AddSwift.cmake

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,8 +298,9 @@ function(_add_variant_c_compile_flags)
298298
endif()
299299

300300
if("${CFLAGS_SDK}" STREQUAL "ANDROID")
301+
swift_android_libcxx_include_paths(CFLAGS_CXX_INCLUDES)
301302
swift_android_include_for_arch("${CFLAGS_ARCH}" "${CFLAGS_ARCH}_INCLUDE")
302-
foreach(path IN LISTS ${CFLAGS_ARCH}_INCLUDE)
303+
foreach(path IN LISTS CFLAGS_CXX_INCLUDES ${CFLAGS_ARCH}_INCLUDE)
303304
list(APPEND result "\"${CMAKE_INCLUDE_FLAG_C}${path}\"")
304305
endforeach()
305306
list(APPEND result "-D__ANDROID_API__=${SWIFT_ANDROID_API_LEVEL}")

cmake/modules/SwiftAndroidSupport.cmake

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
1+
function(swift_android_libcxx_include_paths var)
2+
set(${var}
3+
"${SWIFT_ANDROID_NDK_PATH}/sources/cxx-stl/llvm-libc++/include"
4+
"${SWIFT_ANDROID_NDK_PATH}/sources/cxx-stl/llvm-libc++abi/include"
5+
PARENT_SCOPE)
6+
endfunction()
7+
18
function(swift_android_include_for_arch arch var)
29
set(paths)
310
list(APPEND paths
4-
"${SWIFT_ANDROID_NDK_PATH}/sources/cxx-stl/llvm-libc++/include"
5-
"${SWIFT_ANDROID_NDK_PATH}/sources/cxx-stl/llvm-libc++abi/include"
611
"${SWIFT_ANDROID_NDK_PATH}/sources/android/support/include"
712
"${SWIFT_ANDROID_NDK_PATH}/sysroot/usr/include"
813
"${SWIFT_ANDROID_NDK_PATH}/sysroot/usr/include/${SWIFT_SDK_ANDROID_ARCH_${arch}_NDK_TRIPLE}")

cmake/modules/SwiftConfigureSDK.cmake

Lines changed: 65 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -40,21 +40,26 @@ function(_report_sdk prefix)
4040
message(STATUS " ${arch} Path: ${SWIFT_SDK_${prefix}_ARCH_${arch}_PATH}")
4141
endforeach()
4242
endif()
43-
message(STATUS " Version: ${SWIFT_SDK_${prefix}_VERSION}")
44-
message(STATUS " Build number: ${SWIFT_SDK_${prefix}_BUILD_NUMBER}")
45-
message(STATUS " Deployment version: ${SWIFT_SDK_${prefix}_DEPLOYMENT_VERSION}")
43+
if(prefix IN_LIST SWIFT_APPLE_PLATFORMS)
44+
message(STATUS " Version: ${SWIFT_SDK_${prefix}_VERSION}")
45+
message(STATUS " Build number: ${SWIFT_SDK_${prefix}_BUILD_NUMBER}")
46+
message(STATUS " Deployment version: ${SWIFT_SDK_${prefix}_DEPLOYMENT_VERSION}")
47+
endif()
4648
message(STATUS " Library subdir: ${SWIFT_SDK_${prefix}_LIB_SUBDIR}")
47-
message(STATUS " Version min name: ${SWIFT_SDK_${prefix}_VERSION_MIN_NAME}")
48-
message(STATUS " Triple name: ${SWIFT_SDK_${prefix}_TRIPLE_NAME}")
49+
if(prefix IN_LIST SWIFT_APPLE_PLATFORMS)
50+
message(STATUS " Version min name: ${SWIFT_SDK_${prefix}_VERSION_MIN_NAME}")
51+
message(STATUS " Triple name: ${SWIFT_SDK_${prefix}_TRIPLE_NAME}")
52+
endif()
4953
message(STATUS " Architectures: ${SWIFT_SDK_${prefix}_ARCHITECTURES}")
50-
is_darwin_based_sdk(${prefix} IS_DARWIN_BASED_SDK)
51-
if(NOT ${IS_DARWIN_BASED_SDK})
52-
foreach(arch ${SWIFT_SDK_${prefix}_ARCHITECTURES})
53-
message(STATUS " ICU i18n INCLUDE (${arch}): ${SWIFT_${prefix}_${arch}_ICU_I18N_INCLUDE}")
54-
message(STATUS " ICU i18n LIB (${arch}): ${SWIFT_${prefix}_${arch}_ICU_I18N}")
55-
message(STATUS " ICU unicode INCLUDE (${arch}): ${SWIFT_${prefix}_${arch}_ICU_UC_INCLUDE}")
56-
message(STATUS " ICU unicode LIB (${arch}): ${SWIFT_${prefix}_${arch}_ICU_UC}")
57-
endforeach()
54+
if(NOT prefix IN_LIST SWIFT_APPLE_PLATFORMS)
55+
if(SWIFT_BUILD_STDLIB)
56+
foreach(arch ${SWIFT_SDK_${prefix}_ARCHITECTURES})
57+
message(STATUS " ICU i18n INCLUDE (${arch}): ${SWIFT_${prefix}_${arch}_ICU_I18N_INCLUDE}")
58+
message(STATUS " ICU i18n LIB (${arch}): ${SWIFT_${prefix}_${arch}_ICU_I18N}")
59+
message(STATUS " ICU unicode INCLUDE (${arch}): ${SWIFT_${prefix}_${arch}_ICU_UC_INCLUDE}")
60+
message(STATUS " ICU unicode LIB (${arch}): ${SWIFT_${prefix}_${arch}_ICU_UC}")
61+
endforeach()
62+
endif()
5863
endif()
5964
message(STATUS " Object Format: ${SWIFT_SDK_${prefix}_OBJECT_FORMAT}")
6065
foreach(arch ${SWIFT_SDK_${prefix}_ARCHITECTURES})
@@ -160,18 +165,15 @@ macro(configure_sdk_darwin
160165
_report_sdk("${prefix}")
161166
endmacro()
162167

163-
macro(configure_sdk_unix
164-
prefix name lib_subdir triple_name architectures triple sdkpath)
168+
macro(configure_sdk_unix name architectures)
165169
# Note: this has to be implemented as a macro because it sets global
166170
# variables.
167171

172+
string(TOUPPER ${name} prefix)
173+
string(TOLOWER ${name} platform)
174+
168175
set(SWIFT_SDK_${prefix}_NAME "${name}")
169-
set(SWIFT_SDK_${prefix}_VERSION "don't use")
170-
set(SWIFT_SDK_${prefix}_BUILD_NUMBER "don't use")
171-
set(SWIFT_SDK_${prefix}_DEPLOYMENT_VERSION "")
172-
set(SWIFT_SDK_${prefix}_LIB_SUBDIR "${lib_subdir}")
173-
set(SWIFT_SDK_${prefix}_VERSION_MIN_NAME "")
174-
set(SWIFT_SDK_${prefix}_TRIPLE_NAME "${triple_name}")
176+
set(SWIFT_SDK_${prefix}_LIB_SUBDIR "${platform}")
175177
set(SWIFT_SDK_${prefix}_ARCHITECTURES "${architectures}")
176178
if("${prefix}" STREQUAL "CYGWIN")
177179
set(SWIFT_SDK_${prefix}_OBJECT_FORMAT "COFF")
@@ -209,8 +211,44 @@ macro(configure_sdk_unix
209211
set(SWIFT_SDK_ANDROID_ARCH_${arch}_LINKER
210212
"${SWIFT_SDK_ANDROID_ARCH_${arch}_NDK_PREBUILT_PATH}/bin/${SWIFT_SDK_ANDROID_ARCH_${arch}_NDK_TRIPLE}-${SWIFT_ANDROID_LINKER_NAME}")
211213
else()
212-
set(SWIFT_SDK_${prefix}_ARCH_${arch}_PATH "${sdkpath}")
213-
set(SWIFT_SDK_${prefix}_ARCH_${arch}_TRIPLE "${triple}")
214+
if(NOT SWIFT_SDK_${prefix}_ARCH_${arch}_PATH)
215+
set(SWIFT_SDK_${prefix}_ARCH_${arch}_PATH "/")
216+
endif()
217+
218+
if("${prefix}" STREQUAL "LINUX")
219+
if(arch MATCHES "(armv6|armv7)")
220+
set(SWIFT_SDK_LINUX_ARCH_${arch}_TRIPLE "${arch}-unknown-linux-gnueabihf")
221+
elseif(arch MATCHES "(aarch64|i686|powerpc64|powerpc64le|s390x|x86_64)")
222+
set(SWIFT_SDK_LINUX_ARCH_${arch}_TRIPLE "${arch}-unknown-linux-gnu")
223+
else()
224+
message(FATAL_ERROR "unknown arch for ${prefix}: ${arch}")
225+
endif()
226+
elseif("${prefix}" STREQUAL "FREEBSD")
227+
if(arch STREQUAL x86_64)
228+
message(FATAL_ERROR "unsupported arch for FreeBSD: ${arch}")
229+
endif()
230+
231+
if(CMAKE_HOST_SYSTEM_NAME NOT STREQUAL FreeBSD)
232+
message(WARNING "CMAKE_SYSTEM_VERSION will not match target")
233+
endif()
234+
235+
string(REPLACE "[-].*" "" freebsd_system_version ${CMAKE_SYSTEM_VERSION})
236+
message(STATUS "FreeBSD Version: ${freebsd_system_version}")
237+
238+
set(SWIFT_SDK_FREEBSD_ARCH_x86_64_TRIPLE "x86_64-unknown-freebsd${freebsd_system_version}")
239+
elseif("${prefix}" STREQUAL "CYGWIN")
240+
if(NOT arch STREQUAL x86_64)
241+
message(FATAL_ERROR "unsupported arch for cygwin: ${arch}")
242+
endif()
243+
set(SWIFT_SDK_CYGWIN_ARCH_x86_64_TRIPLE "x86_64-unknown-windows-cygnus")
244+
elseif("${prefix}" STREQUAL "HAIKU")
245+
if(NOT arch STREQUAL x86_64)
246+
message(FATAL_ERROR "unsupported arch for Haiku: ${arch}")
247+
endif()
248+
set(SWIFT_SDK_HAIKU_ARCH_x86_64_TRIPLE "x86_64-unknown-haiku")
249+
else()
250+
message(FATAL_ERROR "unknown Unix OS: ${prefix}")
251+
endif()
214252
endif()
215253
endforeach()
216254

@@ -220,17 +258,15 @@ macro(configure_sdk_unix
220258
_report_sdk("${prefix}")
221259
endmacro()
222260

223-
macro(configure_sdk_windows prefix sdk_name environment architectures)
261+
macro(configure_sdk_windows name environment architectures)
224262
# Note: this has to be implemented as a macro because it sets global
225263
# variables.
226264

265+
string(TOUPPER ${name} prefix)
266+
string(TOLOWER ${name} platform)
267+
227268
set(SWIFT_SDK_${prefix}_NAME "${sdk_name}")
228-
set(SWIFT_SDK_${prefix}_VERSION "NOTFOUND")
229-
set(SWIFT_SDK_${prefix}_BUILD_NUMBER "NOTFOUND")
230-
set(SWIFT_SDK_${prefix}_DEPLOYMENT_VERSION "")
231269
set(SWIFT_SDK_${prefix}_LIB_SUBDIR "windows")
232-
set(SWIFT_SDK_${prefix}_VERSION_MIN_NAME "NOTFOUND")
233-
set(SWIFT_SDK_${prefix}_TRIPLE_NAME "Win32")
234270
set(SWIFT_SDK_${prefix}_ARCHITECTURES "${architectures}")
235271
set(SWIFT_SDK_${prefix}_OBJECT_FORMAT "COFF")
236272

cmake/modules/SwiftWindowsSupport.cmake

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,14 +47,24 @@ function(swift_windows_lib_for_arch arch var)
4747
swift_windows_arch_spelling(${arch} ARCH)
4848

4949
set(paths)
50-
if(${ARCH} STREQUAL x86)
51-
list(APPEND paths "$ENV{VCToolsInstallDir}/Lib")
50+
51+
# NOTE(compnerd) provide compatibility with VS2015 which had the libraries in
52+
# a directory called "Lib" rather than VS2017 which normalizes the layout and
53+
# places them in a directory named "lib".
54+
if(IS_DIRECTORY "$ENV{VCToolsInstallDir}/Lib")
55+
if(${ARCH} STREQUAL x86)
56+
list(APPEND paths "$ENV{VCToolsInstallDir}/Lib/")
57+
else()
58+
list(APPEND paths "$ENV{VCToolsInstallDir}/Lib/${ARCH}")
59+
endif()
5260
else()
53-
list(APPEND paths "$ENV{VCToolsInstallDir}/Lib/${ARCH}")
61+
list(APPEND paths "$ENV{VCToolsInstallDir}/lib/${ARCH}")
5462
endif()
63+
5564
list(APPEND paths
5665
"$ENV{UniversalCRTSdkDir}/Lib/$ENV{UCRTVersion}/ucrt/${ARCH}"
5766
"$ENV{UniversalCRTSdkDir}/Lib/$ENV{UCRTVersion}/um/${ARCH}")
67+
5868
set(${var} ${paths} PARENT_SCOPE)
5969
endfunction()
6070

include/swift/AST/AccessScopeChecker.h

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,19 +55,15 @@ class TypeReprAccessScopeChecker : private ASTWalker, AccessScopeChecker {
5555
};
5656

5757
class TypeAccessScopeChecker : private TypeWalker, AccessScopeChecker {
58-
bool CanonicalizeParentTypes;
59-
6058
TypeAccessScopeChecker(const DeclContext *useDC,
61-
bool treatUsableFromInlineAsPublic,
62-
bool canonicalizeParentTypes);
59+
bool treatUsableFromInlineAsPublic);
6360

6461
Action walkToTypePre(Type T);
6562

6663
public:
6764
static Optional<AccessScope>
6865
getAccessScope(Type T, const DeclContext *useDC,
69-
bool treatUsableFromInlineAsPublic = false,
70-
bool canonicalizeParentTypes = false);
66+
bool treatUsableFromInlineAsPublic = false);
7167
};
7268

7369
}

include/swift/AST/Builtins.def

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,8 @@ BUILTIN_UNARY_OPERATION(FNeg, "fneg", "n", FloatOrVector)
114114
// It has only an effect if the argument is a load or call.
115115
// TODO: consider printing a warning if it is not used on a load or call.
116116
BUILTIN_UNARY_OPERATION(AssumeNonNegative, "assumeNonNegative", "n", Integer)
117+
// It only works on i1.
118+
BUILTIN_UNARY_OPERATION(AssumeTrue, "assume", "", Integer)
117119

118120
#undef BUILTIN_UNARY_OPERATION
119121

0 commit comments

Comments
 (0)