Skip to content

Commit eb75ede

Browse files
SC llvm teamSC llvm team
authored andcommitted
Merge upstream LLVM into amd-gfx12
2 parents 08be1a7 + a5deb59 commit eb75ede

File tree

30 files changed

+2682
-246
lines changed

30 files changed

+2682
-246
lines changed

clang-tools-extra/clang-doc/Representation.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -502,13 +502,13 @@ ClangDocContext::ClangDocContext(tooling::ExecutionContext *ECtx,
502502
}
503503

504504
void ScopeChildren::sort() {
505-
llvm::sort(Namespaces.begin(), Namespaces.end());
506-
llvm::sort(Records.begin(), Records.end());
507-
llvm::sort(Functions.begin(), Functions.end());
508-
llvm::sort(Enums.begin(), Enums.end());
509-
llvm::sort(Typedefs.begin(), Typedefs.end());
510-
llvm::sort(Concepts.begin(), Concepts.end());
511-
llvm::sort(Variables.begin(), Variables.end());
505+
llvm::sort(Namespaces);
506+
llvm::sort(Records);
507+
llvm::sort(Functions);
508+
llvm::sort(Enums);
509+
llvm::sort(Typedefs);
510+
llvm::sort(Concepts);
511+
llvm::sort(Variables);
512512
}
513513
} // namespace doc
514514
} // namespace clang

libc/src/wchar/wcspbrk.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
#include "hdr/types/wchar_t.h"
1212
#include "src/__support/common.h"
1313
#include "src/__support/macros/null_check.h"
14-
#include "wchar_utils.h"
14+
#include "src/wchar/wchar_utils.h"
1515

1616
namespace LIBC_NAMESPACE_DECL {
1717

libclc/clc/include/clc/math/unary_def_via_fp32.inc

Lines changed: 0 additions & 11 deletions
This file was deleted.

libclc/clc/lib/generic/geometric/clc_normalize.inc

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,8 @@
1010
#if (__CLC_VECSIZE_OR_1 == 1 || __CLC_VECSIZE_OR_1 == 2 || \
1111
__CLC_VECSIZE_OR_1 == 3 || __CLC_VECSIZE_OR_1 == 4)
1212

13-
// Until we have a native FP16 implementation, go via FP32
14-
#if __CLC_FPSIZE == 16
15-
16-
_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_normalize(__CLC_GENTYPE p) {
17-
return __CLC_CONVERT_GENTYPE(__clc_normalize(__CLC_CONVERT_FLOATN(p)));
18-
}
19-
2013
// Scalar normalize
21-
#elif defined(__CLC_SCALAR)
14+
#if defined(__CLC_SCALAR)
2215

2316
_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_normalize(__CLC_GENTYPE p) {
2417
return __clc_sign(p);
@@ -27,7 +20,13 @@ _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_normalize(__CLC_GENTYPE p) {
2720
// Vector normalize
2821
#else
2922

30-
#if __CLC_FPSIZE == 32
23+
#if __CLC_FPSIZE == 16
24+
25+
#define MIN_VAL HALF_MIN
26+
#define MAX_SQRT 0x1.0p+8h
27+
#define MIN_SQRT 0x1.0p-8h
28+
29+
#elif __CLC_FPSIZE == 32
3130

3231
#define MIN_VAL FLT_MIN
3332
#define MAX_SQRT 0x1.0p+86F

libclc/clc/lib/generic/math/clc_erf.cl

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9-
#include <clc/clcmacro.h>
109
#include <clc/internal/clc.h>
1110
#include <clc/math/clc_exp.h>
1211
#include <clc/math/clc_fabs.h>
@@ -211,12 +210,6 @@ _CLC_OVERLOAD _CLC_DEF float __clc_erf(float x) {
211210
return ret;
212211
}
213212

214-
#define __FLOAT_ONLY
215-
#define FUNCTION __clc_erf
216-
#define __CLC_BODY <clc/shared/unary_def_scalarize.inc>
217-
#include <clc/math/gentype.inc>
218-
#undef FUNCTION
219-
220213
#ifdef cl_khr_fp64
221214

222215
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
@@ -500,24 +493,19 @@ _CLC_OVERLOAD _CLC_DEF double __clc_erf(double y) {
500493
return y < 0.0 ? -ret : ret;
501494
}
502495

503-
#define __DOUBLE_ONLY
504-
#define FUNCTION __clc_erf
505-
#define __CLC_BODY <clc/shared/unary_def_scalarize.inc>
506-
#include <clc/math/gentype.inc>
507-
#undef FUNCTION
508-
509496
#endif
510497

511498
#ifdef cl_khr_fp16
512499

513-
#include <clc/clc_convert.h>
514-
515500
#pragma OPENCL EXTENSION cl_khr_fp16 : enable
516501

517502
// Forward the half version of this builtin onto the float one
518-
#define __HALF_ONLY
519-
#define FUNCTION __clc_erf
520-
#define __CLC_BODY <clc/math/unary_def_via_fp32.inc>
521-
#include <clc/math/gentype.inc>
503+
_CLC_OVERLOAD _CLC_DEF half __clc_erf(half x) {
504+
return (half)__clc_erf((float)x);
505+
}
522506

523507
#endif
508+
509+
#define FUNCTION __clc_erf
510+
#define __CLC_BODY <clc/shared/unary_def_scalarize.inc>
511+
#include <clc/math/gentype.inc>

libclc/clc/lib/generic/math/clc_erfc.cl

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9-
#include <clc/clcmacro.h>
109
#include <clc/internal/clc.h>
1110
#include <clc/math/clc_exp.h>
1211
#include <clc/math/clc_fabs.h>
@@ -211,12 +210,6 @@ _CLC_OVERLOAD _CLC_DEF float __clc_erfc(float x) {
211210
return ret;
212211
}
213212

214-
#define __FLOAT_ONLY
215-
#define FUNCTION __clc_erfc
216-
#define __CLC_BODY <clc/shared/unary_def_scalarize.inc>
217-
#include <clc/math/gentype.inc>
218-
#undef FUNCTION
219-
220213
#ifdef cl_khr_fp64
221214

222215
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
@@ -509,12 +502,6 @@ _CLC_OVERLOAD _CLC_DEF double __clc_erfc(double x) {
509502
return ret;
510503
}
511504

512-
#define __DOUBLE_ONLY
513-
#define FUNCTION __clc_erfc
514-
#define __CLC_BODY <clc/shared/unary_def_scalarize.inc>
515-
#include <clc/math/gentype.inc>
516-
#undef FUNCTION
517-
518505
#endif
519506

520507
#ifdef cl_khr_fp16
@@ -524,9 +511,12 @@ _CLC_OVERLOAD _CLC_DEF double __clc_erfc(double x) {
524511
#pragma OPENCL EXTENSION cl_khr_fp16 : enable
525512

526513
// Forward the half version of this builtin onto the float one
527-
#define __HALF_ONLY
528-
#define FUNCTION __clc_erfc
529-
#define __CLC_BODY <clc/math/unary_def_via_fp32.inc>
530-
#include <clc/math/gentype.inc>
514+
_CLC_OVERLOAD _CLC_DEF half __clc_erfc(half x) {
515+
return (half)__clc_erfc((float)x);
516+
}
531517

532518
#endif
519+
520+
#define FUNCTION __clc_erfc
521+
#define __CLC_BODY <clc/shared/unary_def_scalarize.inc>
522+
#include <clc/math/gentype.inc>

libclc/clc/lib/generic/math/clc_tgamma.cl

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9-
#include <clc/clcmacro.h>
109
#include <clc/float/definitions.h>
1110
#include <clc/internal/clc.h>
1211
#include <clc/math/clc_exp.h>
@@ -32,12 +31,6 @@ _CLC_OVERLOAD _CLC_DEF float __clc_tgamma(float x) {
3231
return g;
3332
}
3433

35-
#define __FLOAT_ONLY
36-
#define FUNCTION __clc_tgamma
37-
#define __CLC_BODY <clc/shared/unary_def_scalarize.inc>
38-
#include <clc/math/gentype.inc>
39-
#undef FUNCTION
40-
4134
#ifdef cl_khr_fp64
4235

4336
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
@@ -59,24 +52,19 @@ _CLC_OVERLOAD _CLC_DEF double __clc_tgamma(double x) {
5952
return g;
6053
}
6154

62-
#define __DOUBLE_ONLY
63-
#define FUNCTION __clc_tgamma
64-
#define __CLC_BODY <clc/shared/unary_def_scalarize.inc>
65-
#include <clc/math/gentype.inc>
66-
#undef FUNCTION
67-
6855
#endif
6956

7057
#ifdef cl_khr_fp16
7158

72-
#include <clc/clc_convert.h>
73-
7459
#pragma OPENCL EXTENSION cl_khr_fp16 : enable
7560

7661
// Forward the half version of this builtin onto the float one
77-
#define __HALF_ONLY
78-
#define FUNCTION __clc_tgamma
79-
#define __CLC_BODY <clc/math/unary_def_via_fp32.inc>
80-
#include <clc/math/gentype.inc>
62+
_CLC_OVERLOAD _CLC_DEF half __clc_tgamma(half x) {
63+
return (half)__clc_tgamma((float)x);
64+
}
8165

8266
#endif
67+
68+
#define FUNCTION __clc_tgamma
69+
#define __CLC_BODY <clc/shared/unary_def_scalarize.inc>
70+
#include <clc/math/gentype.inc>

llvm/include/llvm/Demangle/DemangleConfig.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@
1515
#ifndef LLVM_DEMANGLE_DEMANGLECONFIG_H
1616
#define LLVM_DEMANGLE_DEMANGLECONFIG_H
1717

18+
// llvm-config.h is required for LLVM_ENABLE_LLVM_EXPORT_ANNOTATIONS
19+
#include "llvm/Config/llvm-config.h"
20+
1821
#ifndef __has_feature
1922
#define __has_feature(x) 0
2023
#endif

llvm/include/llvm/IR/Metadata.h

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -759,18 +759,18 @@ class MDString : public Metadata {
759759
/// memory access used by the alias-analysis infrastructure.
760760
struct AAMDNodes {
761761
explicit AAMDNodes() = default;
762-
explicit AAMDNodes(MDNode *T, MDNode *TS, MDNode *S, MDNode *N)
763-
: TBAA(T), TBAAStruct(TS), Scope(S), NoAlias(N) {}
762+
explicit AAMDNodes(MDNode *T, MDNode *TS, MDNode *S, MDNode *N, MDNode *NAS)
763+
: TBAA(T), TBAAStruct(TS), Scope(S), NoAlias(N), NoAliasAddrSpace(NAS) {}
764764

765765
bool operator==(const AAMDNodes &A) const {
766766
return TBAA == A.TBAA && TBAAStruct == A.TBAAStruct && Scope == A.Scope &&
767-
NoAlias == A.NoAlias;
767+
NoAlias == A.NoAlias && NoAliasAddrSpace == A.NoAliasAddrSpace;
768768
}
769769

770770
bool operator!=(const AAMDNodes &A) const { return !(*this == A); }
771771

772772
explicit operator bool() const {
773-
return TBAA || TBAAStruct || Scope || NoAlias;
773+
return TBAA || TBAAStruct || Scope || NoAlias || NoAliasAddrSpace;
774774
}
775775

776776
/// The tag for type-based alias analysis.
@@ -785,6 +785,9 @@ struct AAMDNodes {
785785
/// The tag specifying the noalias scope.
786786
MDNode *NoAlias = nullptr;
787787

788+
/// The tag specifying the noalias address spaces.
789+
MDNode *NoAliasAddrSpace = nullptr;
790+
788791
// Shift tbaa Metadata node to start off bytes later
789792
LLVM_ABI static MDNode *shiftTBAA(MDNode *M, size_t off);
790793

@@ -806,6 +809,8 @@ struct AAMDNodes {
806809
Result.TBAAStruct = Other.TBAAStruct == TBAAStruct ? TBAAStruct : nullptr;
807810
Result.Scope = Other.Scope == Scope ? Scope : nullptr;
808811
Result.NoAlias = Other.NoAlias == NoAlias ? NoAlias : nullptr;
812+
Result.NoAliasAddrSpace =
813+
Other.NoAliasAddrSpace == NoAliasAddrSpace ? NoAliasAddrSpace : nullptr;
809814
return Result;
810815
}
811816

@@ -818,6 +823,7 @@ struct AAMDNodes {
818823
TBAAStruct ? shiftTBAAStruct(TBAAStruct, Offset) : nullptr;
819824
Result.Scope = Scope;
820825
Result.NoAlias = NoAlias;
826+
Result.NoAliasAddrSpace = NoAliasAddrSpace;
821827
return Result;
822828
}
823829

@@ -833,6 +839,7 @@ struct AAMDNodes {
833839
Result.TBAAStruct = TBAAStruct;
834840
Result.Scope = Scope;
835841
Result.NoAlias = NoAlias;
842+
Result.NoAliasAddrSpace = NoAliasAddrSpace;
836843
return Result;
837844
}
838845

@@ -860,20 +867,21 @@ struct AAMDNodes {
860867
template<>
861868
struct DenseMapInfo<AAMDNodes> {
862869
static inline AAMDNodes getEmptyKey() {
863-
return AAMDNodes(DenseMapInfo<MDNode *>::getEmptyKey(),
864-
nullptr, nullptr, nullptr);
870+
return AAMDNodes(DenseMapInfo<MDNode *>::getEmptyKey(), nullptr, nullptr,
871+
nullptr, nullptr);
865872
}
866873

867874
static inline AAMDNodes getTombstoneKey() {
868-
return AAMDNodes(DenseMapInfo<MDNode *>::getTombstoneKey(),
875+
return AAMDNodes(DenseMapInfo<MDNode *>::getTombstoneKey(), nullptr,
869876
nullptr, nullptr, nullptr);
870877
}
871878

872879
static unsigned getHashValue(const AAMDNodes &Val) {
873880
return DenseMapInfo<MDNode *>::getHashValue(Val.TBAA) ^
874881
DenseMapInfo<MDNode *>::getHashValue(Val.TBAAStruct) ^
875882
DenseMapInfo<MDNode *>::getHashValue(Val.Scope) ^
876-
DenseMapInfo<MDNode *>::getHashValue(Val.NoAlias);
883+
DenseMapInfo<MDNode *>::getHashValue(Val.NoAlias) ^
884+
DenseMapInfo<MDNode *>::getHashValue(Val.NoAliasAddrSpace);
877885
}
878886

879887
static bool isEqual(const AAMDNodes &LHS, const AAMDNodes &RHS) {

llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -525,6 +525,8 @@ AAMDNodes AAMDNodes::merge(const AAMDNodes &Other) const {
525525
Result.TBAAStruct = nullptr;
526526
Result.Scope = MDNode::getMostGenericAliasScope(Scope, Other.Scope);
527527
Result.NoAlias = MDNode::intersect(NoAlias, Other.NoAlias);
528+
Result.NoAliasAddrSpace = MDNode::getMostGenericNoaliasAddrspace(
529+
NoAliasAddrSpace, Other.NoAliasAddrSpace);
528530
return Result;
529531
}
530532

@@ -533,6 +535,8 @@ AAMDNodes AAMDNodes::concat(const AAMDNodes &Other) const {
533535
Result.TBAA = Result.TBAAStruct = nullptr;
534536
Result.Scope = MDNode::getMostGenericAliasScope(Scope, Other.Scope);
535537
Result.NoAlias = MDNode::intersect(NoAlias, Other.NoAlias);
538+
Result.NoAliasAddrSpace = MDNode::getMostGenericNoaliasAddrspace(
539+
NoAliasAddrSpace, Other.NoAliasAddrSpace);
536540
return Result;
537541
}
538542

0 commit comments

Comments
 (0)