Skip to content

Commit fb0e77a

Browse files
committed
merge main into amd-staging
2 parents 8b217eb + 3ff3b29 commit fb0e77a

File tree

175 files changed

+4042
-1779
lines changed

Some content is hidden

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

175 files changed

+4042
-1779
lines changed

bolt/test/X86/icf-safe-icp.test

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
# SAFEICFCHECK: skipping function with reference taken Derived3Func
1616
# SAFEICFCHECK-NEXT: ICF iteration 1
1717
# SAFEICFCHECK-NEXT: folding Derived3Destructor into Derived2Destructor
18-
# SAFEICFCHECK-NEXT: ===---------
1918

2019

2120
## generate profile

bolt/test/X86/icf-safe-process-rela-data.test

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
# SAFEICFCHECK: skipping function with reference taken fooAddFunc
1313
# SAFEICFCHECK-NEXT: skipping function with reference taken barAddFunc
1414
# SAFEICFCHECK-NEXT: ICF iteration 1
15-
# SAFEICFCHECK-NEXT: ===---------
1615

1716
## clang++ main.cpp
1817
## Other functions removed for brevity.

bolt/test/X86/icf-safe-test1.test

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,10 @@
1818
# SAFEICFCHECK: skipping function with reference taken barAddFunc
1919
# SAFEICFCHECK-NEXT: ICF iteration 1
2020
# SAFEICFCHECK-NEXT: folding barSubFunc into fooSubFunc
21-
# SAFEICFCHECK-NEXT: ===---------
2221

2322
# SAFEICFCHECKNOCFG: skipping function with reference taken barAddFunc
2423
# SAFEICFCHECKNOCFG-NEXT: ICF iteration 1
2524
# SAFEICFCHECKNOCFG-NEXT: folding barSubFunc into fooSubFunc
26-
# SAFEICFCHECKNOCFG-NEXT: ===---------
2725

2826
## clang++ -c main.cpp -o main.o
2927
## extern int FooVar;

bolt/test/X86/icf-safe-test2GlobalConstPtrNoPic.test

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
# SAFEICFCHECK-NEXT: skipping function with reference taken barMulFunc
1616
# SAFEICFCHECK-NEXT: skipping function with reference taken barAddFunc
1717
# SAFEICFCHECK-NEXT: ICF iteration 1
18-
# SAFEICFCHECK-NEXT: ===---------
1918

2019
## clang++ main.cpp -c -o -fno-PIC
2120
## Similar code gets generated for external reference function.

clang/include/clang/Basic/riscv_vector.td

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -634,7 +634,6 @@ let HeaderCode =
634634
#define __riscv_vsetvl_e32m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 2)
635635
#define __riscv_vsetvl_e32m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 3)
636636

637-
#if __riscv_v_elen >= 64
638637
#define __riscv_vsetvl_e8mf8(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 5)
639638
#define __riscv_vsetvl_e16mf4(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 6)
640639
#define __riscv_vsetvl_e32mf2(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 7)
@@ -643,7 +642,6 @@ let HeaderCode =
643642
#define __riscv_vsetvl_e64m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 1)
644643
#define __riscv_vsetvl_e64m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 2)
645644
#define __riscv_vsetvl_e64m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 3)
646-
#endif
647645

648646
#define __riscv_vsetvlmax_e8mf4() __builtin_rvv_vsetvlimax(0, 6)
649647
#define __riscv_vsetvlmax_e8mf2() __builtin_rvv_vsetvlimax(0, 7)
@@ -663,7 +661,6 @@ let HeaderCode =
663661
#define __riscv_vsetvlmax_e32m4() __builtin_rvv_vsetvlimax(2, 2)
664662
#define __riscv_vsetvlmax_e32m8() __builtin_rvv_vsetvlimax(2, 3)
665663

666-
#if __riscv_v_elen >= 64
667664
#define __riscv_vsetvlmax_e8mf8() __builtin_rvv_vsetvlimax(0, 5)
668665
#define __riscv_vsetvlmax_e16mf4() __builtin_rvv_vsetvlimax(1, 6)
669666
#define __riscv_vsetvlmax_e32mf2() __builtin_rvv_vsetvlimax(2, 7)
@@ -672,7 +669,6 @@ let HeaderCode =
672669
#define __riscv_vsetvlmax_e64m2() __builtin_rvv_vsetvlimax(3, 1)
673670
#define __riscv_vsetvlmax_e64m4() __builtin_rvv_vsetvlimax(3, 2)
674671
#define __riscv_vsetvlmax_e64m8() __builtin_rvv_vsetvlimax(3, 3)
675-
#endif
676672

677673
}] in
678674
def vsetvl_macro: RVVHeader;

clang/lib/Driver/ToolChains/Arch/PPC.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,11 @@ void ppc::getPPCTargetFeatures(const Driver &D, const llvm::Triple &Triple,
7272
D.Diag(diag::err_drv_argument_only_allowed_with)
7373
<< "-maix-small-local-[exec|dynamic]-tls" << "-fdata-sections";
7474
}
75+
76+
if (Args.hasArg(options::OPT_maix_shared_lib_tls_model_opt) &&
77+
!(Triple.isOSAIX() && Triple.isArch64Bit()))
78+
D.Diag(diag::err_opt_not_valid_on_target)
79+
<< "-maix-shared-lib-tls-model-opt";
7580
}
7681

7782
ppc::ReadGOTPtrMode ppc::getPPCReadGOTPtrMode(const Driver &D, const llvm::Triple &Triple,

clang/lib/Format/Format.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1713,6 +1713,10 @@ FormatStyle getGoogleStyle(FormatStyle::LanguageKind Language) {
17131713
FormatStyle::SIS_WithoutElse;
17141714
GoogleStyle.AllowShortLoopsOnASingleLine = true;
17151715
GoogleStyle.AlwaysBreakBeforeMultilineStrings = true;
1716+
// Abseil aliases to clang's `_Nonnull`, `_Nullable` and `_Null_unspecified`.
1717+
GoogleStyle.AttributeMacros.push_back("absl_nonnull");
1718+
GoogleStyle.AttributeMacros.push_back("absl_nullable");
1719+
GoogleStyle.AttributeMacros.push_back("absl_nullability_unknown");
17161720
GoogleStyle.BreakTemplateDeclarations = FormatStyle::BTDS_Yes;
17171721
GoogleStyle.DerivePointerAlignment = true;
17181722
GoogleStyle.IncludeStyle.IncludeBlocks = tooling::IncludeStyle::IBS_Regroup;

clang/lib/Sema/SemaRISCV.cpp

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -624,13 +624,34 @@ bool SemaRISCV::CheckBuiltinFunctionCall(const TargetInfo &TI,
624624
}
625625
}
626626

627+
auto CheckVSetVL = [&](unsigned SEWOffset, unsigned LMULOffset) -> bool {
628+
const FunctionDecl *FD = SemaRef.getCurFunctionDecl();
629+
llvm::StringMap<bool> FunctionFeatureMap;
630+
Context.getFunctionFeatureMap(FunctionFeatureMap, FD);
631+
llvm::APSInt SEWResult;
632+
llvm::APSInt LMULResult;
633+
if (SemaRef.BuiltinConstantArg(TheCall, SEWOffset, SEWResult) ||
634+
SemaRef.BuiltinConstantArg(TheCall, LMULOffset, LMULResult))
635+
return true;
636+
int SEWValue = SEWResult.getSExtValue();
637+
int LMULValue = LMULResult.getSExtValue();
638+
if (((SEWValue == 0 && LMULValue == 5) || // e8mf8
639+
(SEWValue == 1 && LMULValue == 6) || // e16mf4
640+
(SEWValue == 2 && LMULValue == 7) || // e32mf2
641+
SEWValue == 3) && // e64
642+
!TI.hasFeature("zve64x") &&
643+
!FunctionFeatureMap.lookup("zve64x"))
644+
return Diag(TheCall->getBeginLoc(),
645+
diag::err_riscv_builtin_requires_extension)
646+
<< /* IsExtension */ true << TheCall->getSourceRange() << "zve64x";
647+
return SemaRef.BuiltinConstantArgRange(TheCall, SEWOffset, 0, 3) ||
648+
CheckLMUL(TheCall, LMULOffset);
649+
};
627650
switch (BuiltinID) {
628651
case RISCVVector::BI__builtin_rvv_vsetvli:
629-
return SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, 3) ||
630-
CheckLMUL(TheCall, 2);
652+
return CheckVSetVL(1, 2);
631653
case RISCVVector::BI__builtin_rvv_vsetvlimax:
632-
return SemaRef.BuiltinConstantArgRange(TheCall, 0, 0, 3) ||
633-
CheckLMUL(TheCall, 1);
654+
return CheckVSetVL(0, 1);
634655
case RISCVVector::BI__builtin_rvv_vget_v: {
635656
ASTContext::BuiltinVectorTypeInfo ResVecInfo =
636657
Context.getBuiltinVectorTypeInfo(cast<BuiltinType>(

clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
// UNSUPPORTED: target={{.*}}-zos{{.*}}, target={{.*}}-aix{{.*}}
12
// RUN: %clang_analyze_cc1 -analyzer-checker=alpha.webkit.UnretainedCallArgsChecker -verify %s
23

34
#include "objc-mock-types.h"

clang/test/CodeGen/RISCV/riscv-func-attr-target.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,20 @@ void test_rvv_f64_type_w_zve64d() {
6565
vfloat64m1_t v;
6666
}
6767

68+
__attribute__((target("arch=+v")))
69+
int test_vsetvl_e64m1(unsigned avl) {
70+
// CHECK-LABEL: test_vsetvl_e64m1
71+
// CHECK-SAME: #13
72+
return __riscv_vsetvl_e64m1(avl);
73+
}
74+
75+
__attribute__((target("arch=+v")))
76+
int test_vsetvlmax_e64m1() {
77+
// CHECK-LABEL: test_vsetvlmax_e64m1
78+
// CHECK-SAME: #13
79+
return __riscv_vsetvlmax_e64m1();
80+
}
81+
6882
//.
6983
// CHECK: attributes #0 = { {{.*}}"target-features"="+64bit,+a,+m,+save-restore,+zaamo,+zalrsc,+zifencei,+zmmul,-relax,-zbb,-zfa" }
7084
// CHECK: attributes #1 = { {{.*}}"target-cpu"="rocket-rv64" "target-features"="+64bit,+a,+d,+f,+m,+save-restore,+v,+zaamo,+zalrsc,+zicsr,+zifencei,+zmmul,+zve32f,+zve32x,+zve64d,+zve64f,+zve64x,+zvl128b,+zvl32b,+zvl64b,-relax,-zbb,-zfa" "tune-cpu"="generic-rv64" }

0 commit comments

Comments
 (0)