Skip to content

Commit f006d10

Browse files
authored
Merge branch 'main' into main-riscv-preserve-most
2 parents 237d6cc + 8f187c7 commit f006d10

Some content is hidden

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

47 files changed

+1283
-298
lines changed

clang/lib/Basic/Targets/WebAssembly.cpp

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,12 @@ bool WebAssemblyTargetInfo::hasFeature(StringRef Feature) const {
5959
.Case("exception-handling", HasExceptionHandling)
6060
.Case("extended-const", HasExtendedConst)
6161
.Case("fp16", HasFP16)
62-
.Case("gc", HasGC)
6362
.Case("multimemory", HasMultiMemory)
6463
.Case("multivalue", HasMultivalue)
6564
.Case("mutable-globals", HasMutableGlobals)
6665
.Case("nontrapping-fptoint", HasNontrappingFPToInt)
6766
.Case("reference-types", HasReferenceTypes)
67+
.Case("gc", HasGC)
6868
.Case("relaxed-simd", SIMDLevel >= RelaxedSIMD)
6969
.Case("sign-ext", HasSignExt)
7070
.Case("simd128", SIMDLevel >= SIMD128)
@@ -99,8 +99,6 @@ void WebAssemblyTargetInfo::getTargetDefines(const LangOptions &Opts,
9999
Builder.defineMacro("__wasm_multimemory__");
100100
if (HasFP16)
101101
Builder.defineMacro("__wasm_fp16__");
102-
if (HasGC)
103-
Builder.defineMacro("__wasm_gc__");
104102
if (HasMultivalue)
105103
Builder.defineMacro("__wasm_multivalue__");
106104
if (HasMutableGlobals)
@@ -109,6 +107,8 @@ void WebAssemblyTargetInfo::getTargetDefines(const LangOptions &Opts,
109107
Builder.defineMacro("__wasm_nontrapping_fptoint__");
110108
if (HasReferenceTypes)
111109
Builder.defineMacro("__wasm_reference_types__");
110+
if (HasGC)
111+
Builder.defineMacro("__wasm_gc__");
112112
if (SIMDLevel >= RelaxedSIMD)
113113
Builder.defineMacro("__wasm_relaxed_simd__");
114114
if (HasSignExt)
@@ -194,7 +194,6 @@ bool WebAssemblyTargetInfo::initFeatureMap(
194194
Features["exception-handling"] = true;
195195
Features["extended-const"] = true;
196196
Features["fp16"] = true;
197-
Features["gc"] = true;
198197
Features["multimemory"] = true;
199198
Features["tail-call"] = true;
200199
Features["wide-arithmetic"] = true;
@@ -271,14 +270,6 @@ bool WebAssemblyTargetInfo::handleTargetFeatures(
271270
HasFP16 = false;
272271
continue;
273272
}
274-
if (Feature == "+gc") {
275-
HasGC = true;
276-
continue;
277-
}
278-
if (Feature == "-gc") {
279-
HasGC = false;
280-
continue;
281-
}
282273
if (Feature == "+multimemory") {
283274
HasMultiMemory = true;
284275
continue;
@@ -319,6 +310,14 @@ bool WebAssemblyTargetInfo::handleTargetFeatures(
319310
HasReferenceTypes = false;
320311
continue;
321312
}
313+
if (Feature == "+gc") {
314+
HasGC = true;
315+
continue;
316+
}
317+
if (Feature == "-gc") {
318+
HasGC = false;
319+
continue;
320+
}
322321
if (Feature == "+relaxed-simd") {
323322
SIMDLevel = std::max(SIMDLevel, RelaxedSIMD);
324323
continue;

clang/lib/Basic/Targets/WebAssembly.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,12 @@ class LLVM_LIBRARY_VISIBILITY WebAssemblyTargetInfo : public TargetInfo {
6464
bool HasExceptionHandling = false;
6565
bool HasExtendedConst = false;
6666
bool HasFP16 = false;
67-
bool HasGC = false;
6867
bool HasMultiMemory = false;
6968
bool HasMultivalue = false;
7069
bool HasMutableGlobals = false;
7170
bool HasNontrappingFPToInt = false;
7271
bool HasReferenceTypes = false;
72+
bool HasGC = false;
7373
bool HasSignExt = false;
7474
bool HasTailCall = false;
7575
bool HasWideArithmetic = false;

clang/lib/CodeGen/CGCoroutine.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -435,7 +435,7 @@ CodeGenFunction::generateAwaitSuspendWrapper(Twine const &CoroName,
435435
llvm::FunctionType *LTy = CGM.getTypes().GetFunctionType(FI);
436436

437437
llvm::Function *Fn = llvm::Function::Create(
438-
LTy, llvm::GlobalValue::PrivateLinkage, FuncName, &CGM.getModule());
438+
LTy, llvm::GlobalValue::InternalLinkage, FuncName, &CGM.getModule());
439439

440440
Fn->addParamAttr(0, llvm::Attribute::AttrKind::NonNull);
441441
Fn->addParamAttr(0, llvm::Attribute::AttrKind::NoUndef);

clang/lib/Driver/ToolChains/MinGW.cpp

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,11 +85,18 @@ void tools::MinGW::Linker::AddLibGCC(const ArgList &Args,
8585

8686
CmdArgs.push_back("-lmoldname");
8787
CmdArgs.push_back("-lmingwex");
88-
for (auto Lib : Args.getAllArgValues(options::OPT_l))
88+
for (auto Lib : Args.getAllArgValues(options::OPT_l)) {
8989
if (StringRef(Lib).starts_with("msvcr") ||
9090
StringRef(Lib).starts_with("ucrt") ||
91-
StringRef(Lib).starts_with("crtdll"))
91+
StringRef(Lib).starts_with("crtdll")) {
92+
std::string CRTLib = (llvm::Twine("-l") + Lib).str();
93+
// Respect the user's chosen crt variant, but still provide it
94+
// again as the last linker argument, because some of the libraries
95+
// we added above may depend on it.
96+
CmdArgs.push_back(Args.MakeArgStringRef(CRTLib));
9297
return;
98+
}
99+
}
93100
CmdArgs.push_back("-lmsvcrt");
94101
}
95102

clang/test/CodeGenCoroutines/coro-await.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ extern "C" void f0() {
100100
// CHECK: call i8 @llvm.coro.suspend(token %[[FINALSP_ID]], i1 true)
101101

102102
// Await suspend wrapper
103-
// CHECK: define{{.*}} @f0.__await_suspend_wrapper__await(ptr {{[^,]*}} %[[AWAITABLE_ARG:.+]], ptr {{[^,]*}} %[[FRAME_ARG:.+]])
103+
// CHECK: define internal {{.*}} @f0.__await_suspend_wrapper__await(ptr {{[^,]*}} %[[AWAITABLE_ARG:.+]], ptr {{[^,]*}} %[[FRAME_ARG:.+]])
104104
// CHECK: store ptr %[[AWAITABLE_ARG]], ptr %[[AWAITABLE_TMP:.+]],
105105
// CHECK: store ptr %[[FRAME_ARG]], ptr %[[FRAME_TMP:.+]],
106106
// CHECK: %[[AWAITABLE:.+]] = load ptr, ptr %[[AWAITABLE_TMP]]
@@ -162,7 +162,7 @@ extern "C" void f1(int) {
162162
// CHECK: call void @_ZN13suspend_maybe12await_resumeEv(ptr {{[^,]*}} %[[AWAITABLE]])
163163

164164
// Await suspend wrapper
165-
// CHECK: define {{.*}} i1 @f1.__await_suspend_wrapper__yield(ptr {{[^,]*}} %[[AWAITABLE_ARG:.+]], ptr {{[^,]*}} %[[FRAME_ARG:.+]])
165+
// CHECK: define internal {{.*}} i1 @f1.__await_suspend_wrapper__yield(ptr {{[^,]*}} %[[AWAITABLE_ARG:.+]], ptr {{[^,]*}} %[[FRAME_ARG:.+]])
166166
// CHECK: store ptr %[[AWAITABLE_ARG]], ptr %[[AWAITABLE_TMP:.+]],
167167
// CHECK: store ptr %[[FRAME_ARG]], ptr %[[FRAME_TMP:.+]],
168168
// CHECK: %[[AWAITABLE:.+]] = load ptr, ptr %[[AWAITABLE_TMP]]
@@ -379,7 +379,7 @@ extern "C" void TestTailcall() {
379379
// CHECK-NEXT: ]
380380

381381
// Await suspend wrapper
382-
// CHECK: define {{.*}} ptr @TestTailcall.__await_suspend_wrapper__await(ptr {{[^,]*}} %[[AWAITABLE_ARG:.+]], ptr {{[^,]*}} %[[FRAME_ARG:.+]])
382+
// CHECK: define internal {{.*}} ptr @TestTailcall.__await_suspend_wrapper__await(ptr {{[^,]*}} %[[AWAITABLE_ARG:.+]], ptr {{[^,]*}} %[[FRAME_ARG:.+]])
383383
// CHECK: store ptr %[[AWAITABLE_ARG]], ptr %[[AWAITABLE_TMP:.+]],
384384
// CHECK: store ptr %[[FRAME_ARG]], ptr %[[FRAME_TMP:.+]],
385385
// CHECK: %[[AWAITABLE:.+]] = load ptr, ptr %[[AWAITABLE_TMP]]

clang/test/Driver/mingw-msvcrt.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77
// CHECK_DEFAULT: "-lmingwex" "-lmsvcrt" "-ladvapi32"
88
// CHECK_DEFAULT-SAME: "-lmsvcrt" "-lkernel32" "{{.*}}crtend.o"
99
// CHECK_MSVCR120: "-lmsvcr120"
10-
// CHECK_MSVCR120-SAME: "-lmingwex" "-ladvapi32"
10+
// CHECK_MSVCR120-SAME: "-lmingwex" "-lmsvcr120" "-ladvapi32"
1111
// CHECK_UCRTBASE: "-lucrtbase"
12-
// CHECK_UCRTBASE-SAME: "-lmingwex" "-ladvapi32"
12+
// CHECK_UCRTBASE-SAME: "-lmingwex" "-lucrtbase" "-ladvapi32"
1313
// CHECK_UCRT: "-lucrt"
14-
// CHECK_UCRT-SAME: "-lmingwex" "-ladvapi32"
14+
// CHECK_UCRT-SAME: "-lmingwex" "-lucrt" "-ladvapi32"
1515
// CHECK_CRTDLL: "-lcrtdll"
16-
// CHECK_CRTDLL-SAME: "-lmingwex" "-ladvapi32"
16+
// CHECK_CRTDLL-SAME: "-lmingwex" "-lcrtdll" "-ladvapi32"

clang/test/Driver/wasm-features.c

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,6 @@
4141
// HALF-PRECISION: "-target-feature" "+fp16"
4242
// NO-HALF-PRECISION: "-target-feature" "-fp16"
4343

44-
// RUN: %clang --target=wasm32-unknown-unknown -### %s -mgc 2>&1 | FileCheck %s -check-prefix=GC
45-
// RUN: %clang --target=wasm32-unknown-unknown -### %s -mno-gc 2>&1 | FileCheck %s -check-prefix=NO-GC
46-
47-
// GC: "-target-feature" "+gc"
48-
// NO-GC: "-target-feature" "-gc"
49-
5044
// RUN: %clang --target=wasm32-unknown-unknown -### %s -mmultimemory 2>&1 | FileCheck %s -check-prefix=MULTIMEMORY
5145
// RUN: %clang --target=wasm32-unknown-unknown -### %s -mno-multimemory 2>&1 | FileCheck %s -check-prefix=NO-MULTIMEMORY
5246

clang/test/Preprocessor/wasm-target-features.c

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,6 @@
5252
//
5353
// FP16: #define __wasm_fp16__ 1{{$}}
5454

55-
// RUN: %clang -E -dM %s -o - 2>&1 \
56-
// RUN: -target wasm32-unknown-unknown -mgc \
57-
// RUN: | FileCheck %s -check-prefix=GC
58-
// RUN: %clang -E -dM %s -o - 2>&1 \
59-
// RUN: -target wasm64-unknown-unknown -mgc \
60-
// RUN: | FileCheck %s -check-prefix=GC
61-
//
62-
// GC: #define __wasm_gc__ 1{{$}}
63-
6455
// RUN: %clang -E -dM %s -o - 2>&1 \
6556
// RUN: -target wasm32-unknown-unknown -mmultimemory \
6657
// RUN: | FileCheck %s -check-prefix=MULTIMEMORY
@@ -154,7 +145,6 @@
154145
// MVP-NOT: #define __wasm_exception_handling__ 1{{$}}
155146
// MVP-NOT: #define __wasm_extended_const__ 1{{$}}
156147
// MVP-NOT: #define __wasm_fp16__ 1{{$}}
157-
// MVP-NOT: #define __wasm_gc__ 1{{$}}
158148
// MVP-NOT: #define __wasm_multimemory__ 1{{$}}
159149
// MVP-NOT: #define __wasm_multivalue__ 1{{$}}
160150
// MVP-NOT: #define __wasm_mutable_globals__ 1{{$}}
@@ -191,7 +181,6 @@
191181
// GENERIC-NOT: #define __wasm_exception_handling__ 1{{$}}
192182
// GENERIC-NOT: #define __wasm_extended_const__ 1{{$}}
193183
// GENERIC-NOT: #define __wasm__fp16__ 1{{$}}
194-
// GENERIC-NOT: #define __wasm_gc__ 1{{$}}
195184
// GENERIC-NOT: #define __wasm_multimemory__ 1{{$}}
196185
// GENERIC-NOT: #define __wasm_relaxed_simd__ 1{{$}}
197186
// GENERIC-NOT: #define __wasm_simd128__ 1{{$}}
@@ -210,7 +199,6 @@
210199
// BLEEDING-EDGE-INCLUDE-DAG: #define __wasm_exception_handling__ 1{{$}}
211200
// BLEEDING-EDGE-INCLUDE-DAG: #define __wasm_extended_const__ 1{{$}}
212201
// BLEEDING-EDGE-INCLUDE-DAG: #define __wasm_fp16__ 1{{$}}
213-
// BLEEDING-EDGE-INCLUDE-DAG: #define __wasm_gc__ 1{{$}}
214202
// BLEEDING-EDGE-INCLUDE-DAG: #define __wasm_multimemory__ 1{{$}}
215203
// BLEEDING-EDGE-INCLUDE-DAG: #define __wasm_multivalue__ 1{{$}}
216204
// BLEEDING-EDGE-INCLUDE-DAG: #define __wasm_mutable_globals__ 1{{$}}

compiler-rt/test/asan/TestCases/Linux/long-object-path.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
// RUN: mkdir -p %t.a-long-directory-name-to-test-allocations-for-exceptions-in-_dl_lookup_symbol_x-since-glibc-2.27
2-
// RUN: %clangxx_asan -g %s -o %t.long-object-path
3-
// RUN: %run %t.a-*/../a-*/../a-*/../a-*/../a-*/../a-*/../a-*/../a-*/../long-object-path
1+
// RUN: mkdir -p %T/a-long-directory-name-to-test-allocations-for-exceptions-in-_dl_lookup_symbol_x-since-glibc-2.27
2+
// RUN: %clangxx_asan -g %s -o %T/long-object-path
3+
// RUN: %run %T/a-*/../a-*/../a-*/../a-*/../a-*/../a-*/../a-*/../a-*/../long-object-path
44

55
int main(void) {
66
return 0;

compiler-rt/test/fuzzer/afl-driver-stderr.test

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@ RUN: %no_fuzzer_cpp_compiler %S/AFLDriverTest.cpp %libfuzzer_src/afl/afl_driver.
77
RUN: env -u AFL_DRIVER_STDERR_DUPLICATE_FILENAME %run %t-AFLDriverTest
88

99
; Test that specifying an invalid file causes a crash.
10-
RUN: mkdir -p %t.dir
11-
RUN: env ASAN_OPTIONS= AFL_DRIVER_STDERR_DUPLICATE_FILENAME="%t.dir" not --crash %run %t-AFLDriverTest
10+
RUN: env ASAN_OPTIONS= AFL_DRIVER_STDERR_DUPLICATE_FILENAME="%T" not --crash %run %t-AFLDriverTest
1211

1312
; Test that a file is created when specified as the duplicate stderr.
1413
RUN: env AFL_DRIVER_STDERR_DUPLICATE_FILENAME=%t %run %t-AFLDriverTest

0 commit comments

Comments
 (0)