Skip to content

Commit af7c58b

Browse files
authoredOct 28, 2024··
1 parent 6827a00 commit af7c58b

35 files changed

+10
-346
lines changed
 

‎clang/docs/ReleaseNotes.rst

+6
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,12 @@ code bases.
4646

4747
- The ``clang-rename`` tool has been removed.
4848

49+
- Removed support for RenderScript targets. This technology is
50+
`officially deprecated <https://developer.android.com/guide/topics/renderscript/compute>`_
51+
and users are encouraged to
52+
`migrate to Vulkan <https://developer.android.com/guide/topics/renderscript/migrate>`_
53+
or other options.
54+
4955
C/C++ Language Potentially Breaking Changes
5056
-------------------------------------------
5157

‎clang/include/clang/Basic/Attr.td

-9
Original file line numberDiff line numberDiff line change
@@ -411,7 +411,6 @@ def SYCL : LangOpt<"SYCLIsDevice">;
411411
def COnly : LangOpt<"", "!LangOpts.CPlusPlus">;
412412
def CPlusPlus : LangOpt<"CPlusPlus">;
413413
def OpenCL : LangOpt<"OpenCL">;
414-
def RenderScript : LangOpt<"RenderScript">;
415414
def ObjC : LangOpt<"ObjC">;
416415
def BlocksSupported : LangOpt<"Blocks">;
417416
def ObjCAutoRefCount : LangOpt<"ObjCAutoRefCount">;
@@ -1629,14 +1628,6 @@ def OpenCLNoSVM : Attr {
16291628
let ASTNode = 0;
16301629
}
16311630

1632-
def RenderScriptKernel : Attr {
1633-
let Spellings = [GNU<"kernel">];
1634-
let Subjects = SubjectList<[Function]>;
1635-
let Documentation = [RenderScriptKernelAttributeDocs];
1636-
let LangOpts = [RenderScript];
1637-
let SimpleHandler = 1;
1638-
}
1639-
16401631
def Deprecated : InheritableAttr {
16411632
let Spellings = [GCC<"deprecated">, Declspec<"deprecated">,
16421633
CXX11<"","deprecated", 201309>,

‎clang/include/clang/Basic/AttrDocs.td

-15
Original file line numberDiff line numberDiff line change
@@ -5831,21 +5831,6 @@ provided with the regular ``visibility`` attribute.
58315831
}];
58325832
}
58335833

5834-
def RenderScriptKernelAttributeDocs : Documentation {
5835-
let Category = DocCatFunction;
5836-
let Content = [{
5837-
``__attribute__((kernel))`` is used to mark a ``kernel`` function in
5838-
RenderScript.
5839-
5840-
In RenderScript, ``kernel`` functions are used to express data-parallel
5841-
computations. The RenderScript runtime efficiently parallelizes ``kernel``
5842-
functions to run on computational resources such as multi-core CPUs and GPUs.
5843-
See the RenderScript_ documentation for more information.
5844-
5845-
.. _RenderScript: https://developer.android.com/guide/topics/renderscript/compute.html
5846-
}];
5847-
}
5848-
58495834
def XRayDocs : Documentation {
58505835
let Category = DocCatFunction;
58515836
let Heading = "xray_always_instrument, xray_never_instrument, xray_log_args";

‎clang/include/clang/Basic/LangOptions.def

-1
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,6 @@ LANGOPT(OpenMPNoNestedParallelism , 1, 0, "Assume that no thread in a parallel
280280
LANGOPT(OpenMPOffloadMandatory , 1, 0, "Assert that offloading is mandatory and do not create a host fallback.")
281281
LANGOPT(OpenMPForceUSM , 1, 0, "Enable OpenMP unified shared memory mode via compiler.")
282282
LANGOPT(NoGPULib , 1, 0, "Indicate a build without the standard GPU libraries.")
283-
LANGOPT(RenderScript , 1, 0, "RenderScript")
284283

285284
LANGOPT(HLSL, 1, 0, "HLSL")
286285
ENUM_LANGOPT(HLSLVersion, HLSLLangStd, 16, HLSL_Unset, "HLSL Version")

‎clang/include/clang/Basic/LangStandard.h

-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ enum class Language : uint8_t {
3939
OpenCL,
4040
OpenCLCXX,
4141
CUDA,
42-
RenderScript,
4342
HIP,
4443
HLSL,
4544
///@}

‎clang/include/clang/Basic/TargetInfo.h

-6
Original file line numberDiff line numberDiff line change
@@ -262,9 +262,6 @@ class TargetInfo : public TransferrableTargetInfo,
262262
LLVM_PREFERRED_TYPE(bool)
263263
unsigned HasBuiltinMSVaList : 1;
264264

265-
LLVM_PREFERRED_TYPE(bool)
266-
unsigned IsRenderScriptTarget : 1;
267-
268265
LLVM_PREFERRED_TYPE(bool)
269266
unsigned HasAArch64SVETypes : 1;
270267

@@ -1031,9 +1028,6 @@ class TargetInfo : public TransferrableTargetInfo,
10311028
/// available on this target.
10321029
bool hasBuiltinMSVaList() const { return HasBuiltinMSVaList; }
10331030

1034-
/// Returns true for RenderScript.
1035-
bool isRenderScriptTarget() const { return IsRenderScriptTarget; }
1036-
10371031
/// Returns whether or not the AArch64 SVE built-in types are
10381032
/// available on this target.
10391033
bool hasAArch64SVETypes() const { return HasAArch64SVETypes; }

‎clang/include/clang/Driver/Options.td

+2-3
Original file line numberDiff line numberDiff line change
@@ -627,7 +627,6 @@ defvar c23 = LangOpts<"C23">;
627627
defvar lang_std = LangOpts<"LangStd">;
628628
defvar open_cl = LangOpts<"OpenCL">;
629629
defvar cuda = LangOpts<"CUDA">;
630-
defvar render_script = LangOpts<"RenderScript">;
631630
defvar hip = LangOpts<"HIP">;
632631
defvar gnu_mode = LangOpts<"GNUMode">;
633632
defvar asm_preprocessor = LangOpts<"AsmPreprocessor">;
@@ -8118,11 +8117,11 @@ def vtordisp_mode_EQ : Joined<["-"], "vtordisp-mode=">,
81188117
def fnative_half_type: Flag<["-"], "fnative-half-type">,
81198118
HelpText<"Use the native half type for __fp16 instead of promoting to float">,
81208119
MarshallingInfoFlag<LangOpts<"NativeHalfType">>,
8121-
ImpliedByAnyOf<[open_cl.KeyPath, render_script.KeyPath]>;
8120+
ImpliedByAnyOf<[open_cl.KeyPath]>;
81228121
def fnative_half_arguments_and_returns : Flag<["-"], "fnative-half-arguments-and-returns">,
81238122
HelpText<"Use the native __fp16 type for arguments and returns (and skip ABI-specific lowering)">,
81248123
MarshallingInfoFlag<LangOpts<"NativeHalfArgsAndReturns">>,
8125-
ImpliedByAnyOf<[open_cl.KeyPath, render_script.KeyPath, hlsl.KeyPath, hip.KeyPath]>;
8124+
ImpliedByAnyOf<[open_cl.KeyPath, hlsl.KeyPath, hip.KeyPath]>;
81268125
def fdefault_calling_conv_EQ : Joined<["-"], "fdefault-calling-conv=">,
81278126
HelpText<"Set default calling convention">,
81288127
Values<"cdecl,fastcall,stdcall,vectorcall,regcall,rtdcall">,

‎clang/include/clang/Driver/Types.def

-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ TYPE("c++", CXX, PP_CXX, "cpp", phases
5555
TYPE("objective-c++-cpp-output", PP_ObjCXX, INVALID, "mii", phases::Compile, phases::Backend, phases::Assemble, phases::Link)
5656
TYPE("objc++-cpp-output", PP_ObjCXX_Alias, INVALID, "mii", phases::Compile, phases::Backend, phases::Assemble, phases::Link)
5757
TYPE("objective-c++", ObjCXX, PP_ObjCXX, "mm", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link)
58-
TYPE("renderscript", RenderScript, PP_C, "rs", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link)
5958
TYPE("hlsl", HLSL, PP_CXX, "hlsl", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble)
6059

6160
// C family input files to precompile.

‎clang/lib/Basic/LangOptions.cpp

-2
Original file line numberDiff line numberDiff line change
@@ -203,8 +203,6 @@ void LangOptions::setLangDefaults(LangOptions &Opts, Language Lang,
203203
Opts.setDefaultFPContractMode(LangOptions::FPM_Fast);
204204
}
205205

206-
Opts.RenderScript = Lang == Language::RenderScript;
207-
208206
// OpenCL, C++ and C23 have bool, true, false keywords.
209207
Opts.Bool = Opts.OpenCL || Opts.CPlusPlus || Opts.C23;
210208

‎clang/lib/Basic/LangStandards.cpp

-4
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,6 @@ StringRef clang::languageToString(Language L) {
3737
return "OpenCLC++";
3838
case Language::CUDA:
3939
return "CUDA";
40-
case Language::RenderScript:
41-
return "RenderScript";
4240
case Language::HIP:
4341
return "HIP";
4442
case Language::HLSL:
@@ -114,8 +112,6 @@ LangStandard::Kind clang::getDefaultLanguageStandard(clang::Language Lang,
114112
case Language::CUDA:
115113
case Language::HIP:
116114
return LangStandard::lang_gnucxx17;
117-
case Language::RenderScript:
118-
return LangStandard::lang_c99;
119115
case Language::HLSL:
120116
return LangStandard::lang_hlsl202x;
121117
}

‎clang/lib/Basic/TargetInfo.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,6 @@ TargetInfo::TargetInfo(const llvm::Triple &T) : Triple(T) {
154154
SSERegParmMax = 0;
155155
HasAlignMac68kSupport = false;
156156
HasBuiltinMSVaList = false;
157-
IsRenderScriptTarget = false;
158157
HasAArch64SVETypes = false;
159158
HasRISCVVTypes = false;
160159
AllowAMDGPUUnsafeFPAtomics = false;

‎clang/lib/Basic/Targets.cpp

-6
Original file line numberDiff line numberDiff line change
@@ -710,12 +710,6 @@ std::unique_ptr<TargetInfo> AllocateTarget(const llvm::Triple &Triple,
710710

711711
case llvm::Triple::dxil:
712712
return std::make_unique<DirectXTargetInfo>(Triple, Opts);
713-
case llvm::Triple::renderscript32:
714-
return std::make_unique<LinuxTargetInfo<RenderScript32TargetInfo>>(Triple,
715-
Opts);
716-
case llvm::Triple::renderscript64:
717-
return std::make_unique<LinuxTargetInfo<RenderScript64TargetInfo>>(Triple,
718-
Opts);
719713

720714
case llvm::Triple::ve:
721715
return std::make_unique<LinuxTargetInfo<VETargetInfo>>(Triple, Opts);

‎clang/lib/Basic/Targets/AArch64.cpp

-16
Original file line numberDiff line numberDiff line change
@@ -1723,19 +1723,3 @@ TargetInfo::BuiltinVaListKind
17231723
DarwinAArch64TargetInfo::getBuiltinVaListKind() const {
17241724
return TargetInfo::CharPtrBuiltinVaList;
17251725
}
1726-
1727-
// 64-bit RenderScript is aarch64
1728-
RenderScript64TargetInfo::RenderScript64TargetInfo(const llvm::Triple &Triple,
1729-
const TargetOptions &Opts)
1730-
: AArch64leTargetInfo(llvm::Triple("aarch64", Triple.getVendorName(),
1731-
Triple.getOSName(),
1732-
Triple.getEnvironmentName()),
1733-
Opts) {
1734-
IsRenderScriptTarget = true;
1735-
}
1736-
1737-
void RenderScript64TargetInfo::getTargetDefines(const LangOptions &Opts,
1738-
MacroBuilder &Builder) const {
1739-
Builder.defineMacro("__RENDERSCRIPT__");
1740-
AArch64leTargetInfo::getTargetDefines(Opts, Builder);
1741-
}

‎clang/lib/Basic/Targets/AArch64.h

-11
Original file line numberDiff line numberDiff line change
@@ -319,17 +319,6 @@ class LLVM_LIBRARY_VISIBILITY DarwinAArch64TargetInfo
319319
MacroBuilder &Builder) const override;
320320
};
321321

322-
// 64-bit RenderScript is aarch64
323-
class LLVM_LIBRARY_VISIBILITY RenderScript64TargetInfo
324-
: public AArch64leTargetInfo {
325-
public:
326-
RenderScript64TargetInfo(const llvm::Triple &Triple,
327-
const TargetOptions &Opts);
328-
329-
void getTargetDefines(const LangOptions &Opts,
330-
MacroBuilder &Builder) const override;
331-
};
332-
333322
} // namespace targets
334323
} // namespace clang
335324

‎clang/lib/Basic/Targets/ARM.cpp

-16
Original file line numberDiff line numberDiff line change
@@ -1498,19 +1498,3 @@ void DarwinARMTargetInfo::getOSDefines(const LangOptions &Opts,
14981498
MacroBuilder &Builder) const {
14991499
getDarwinDefines(Builder, Opts, Triple, PlatformName, PlatformMinVersion);
15001500
}
1501-
1502-
RenderScript32TargetInfo::RenderScript32TargetInfo(const llvm::Triple &Triple,
1503-
const TargetOptions &Opts)
1504-
: ARMleTargetInfo(llvm::Triple("armv7", Triple.getVendorName(),
1505-
Triple.getOSName(),
1506-
Triple.getEnvironmentName()),
1507-
Opts) {
1508-
IsRenderScriptTarget = true;
1509-
LongWidth = LongAlign = 64;
1510-
}
1511-
1512-
void RenderScript32TargetInfo::getTargetDefines(const LangOptions &Opts,
1513-
MacroBuilder &Builder) const {
1514-
Builder.defineMacro("__RENDERSCRIPT__");
1515-
ARMleTargetInfo::getTargetDefines(Opts, Builder);
1516-
}

‎clang/lib/Basic/Targets/ARM.h

-11
Original file line numberDiff line numberDiff line change
@@ -310,17 +310,6 @@ class LLVM_LIBRARY_VISIBILITY DarwinARMTargetInfo
310310
DarwinARMTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts);
311311
};
312312

313-
// 32-bit RenderScript is armv7 with width and align of 'long' set to 8-bytes
314-
class LLVM_LIBRARY_VISIBILITY RenderScript32TargetInfo
315-
: public ARMleTargetInfo {
316-
public:
317-
RenderScript32TargetInfo(const llvm::Triple &Triple,
318-
const TargetOptions &Opts);
319-
320-
void getTargetDefines(const LangOptions &Opts,
321-
MacroBuilder &Builder) const override;
322-
};
323-
324313
} // namespace targets
325314
} // namespace clang
326315

‎clang/lib/CodeGen/ABIInfoImpl.cpp

-10
Original file line numberDiff line numberDiff line change
@@ -80,16 +80,6 @@ RValue DefaultABIInfo::EmitVAArg(CodeGenFunction &CGF, Address VAListAddr,
8080
Slot);
8181
}
8282

83-
ABIArgInfo CodeGen::coerceToIntArray(QualType Ty, ASTContext &Context,
84-
llvm::LLVMContext &LLVMContext) {
85-
// Alignment and Size are measured in bits.
86-
const uint64_t Size = Context.getTypeSize(Ty);
87-
const uint64_t Alignment = Context.getTypeAlign(Ty);
88-
llvm::Type *IntType = llvm::Type::getIntNTy(LLVMContext, Alignment);
89-
const uint64_t NumElements = (Size + Alignment - 1) / Alignment;
90-
return ABIArgInfo::getDirect(llvm::ArrayType::get(IntType, NumElements));
91-
}
92-
9383
void CodeGen::AssignToArrayRange(CodeGen::CGBuilderTy &Builder,
9484
llvm::Value *Array, llvm::Value *Value,
9585
unsigned FirstIndex, unsigned LastIndex) {

‎clang/lib/CodeGen/ABIInfoImpl.h

-17
Original file line numberDiff line numberDiff line change
@@ -33,23 +33,6 @@ class DefaultABIInfo : public ABIInfo {
3333
AggValueSlot Slot) const override;
3434
};
3535

36-
// Helper for coercing an aggregate argument or return value into an integer
37-
// array of the same size (including padding) and alignment. This alternate
38-
// coercion happens only for the RenderScript ABI and can be removed after
39-
// runtimes that rely on it are no longer supported.
40-
//
41-
// RenderScript assumes that the size of the argument / return value in the IR
42-
// is the same as the size of the corresponding qualified type. This helper
43-
// coerces the aggregate type into an array of the same size (including
44-
// padding). This coercion is used in lieu of expansion of struct members or
45-
// other canonical coercions that return a coerced-type of larger size.
46-
//
47-
// Ty - The argument / return value type
48-
// Context - The associated ASTContext
49-
// LLVMContext - The associated LLVMContext
50-
ABIArgInfo coerceToIntArray(QualType Ty, ASTContext &Context,
51-
llvm::LLVMContext &LLVMContext);
52-
5336
void AssignToArrayRange(CodeGen::CGBuilderTy &Builder, llvm::Value *Array,
5437
llvm::Value *Value, unsigned FirstIndex,
5538
unsigned LastIndex);

‎clang/lib/CodeGen/CGDebugInfo.cpp

-2
Original file line numberDiff line numberDiff line change
@@ -624,8 +624,6 @@ void CGDebugInfo::CreateCompileUnit() {
624624
} else if (LO.OpenCL && (!CGM.getCodeGenOpts().DebugStrictDwarf ||
625625
CGM.getCodeGenOpts().DwarfVersion >= 5)) {
626626
LangTag = llvm::dwarf::DW_LANG_OpenCL;
627-
} else if (LO.RenderScript) {
628-
LangTag = llvm::dwarf::DW_LANG_GOOGLE_RenderScript;
629627
} else if (LO.C11 && !(CGO.DebugStrictDwarf && CGO.DwarfVersion < 5)) {
630628
LangTag = llvm::dwarf::DW_LANG_C11;
631629
} else if (LO.C99) {

‎clang/lib/CodeGen/Targets/AArch64.cpp

-11
Original file line numberDiff line numberDiff line change
@@ -462,11 +462,6 @@ ABIArgInfo AArch64ABIInfo::classifyArgumentType(QualType Ty, bool IsVariadicFn,
462462

463463
// Aggregates <= 16 bytes are passed directly in registers or on the stack.
464464
if (Size <= 128) {
465-
// On RenderScript, coerce Aggregates <= 16 bytes to an integer array of
466-
// same size and alignment.
467-
if (getTarget().isRenderScriptTarget()) {
468-
return coerceToIntArray(Ty, getContext(), getVMContext());
469-
}
470465
unsigned Alignment;
471466
if (Kind == AArch64ABIKind::AAPCS) {
472467
Alignment = getContext().getTypeUnadjustedAlign(Ty);
@@ -548,12 +543,6 @@ ABIArgInfo AArch64ABIInfo::classifyReturnType(QualType RetTy,
548543

549544
// Aggregates <= 16 bytes are returned directly in registers or on the stack.
550545
if (Size <= 128) {
551-
// On RenderScript, coerce Aggregates <= 16 bytes to an integer array of
552-
// same size and alignment.
553-
if (getTarget().isRenderScriptTarget()) {
554-
return coerceToIntArray(RetTy, getContext(), getVMContext());
555-
}
556-
557546
if (Size <= 64 && getDataLayout().isLittleEndian()) {
558547
// Composite types are returned in lower bits of a 64-bit register for LE,
559548
// and in higher bits for BE. However, integer types are always returned

‎clang/lib/CodeGen/Targets/ARM.cpp

-11
Original file line numberDiff line numberDiff line change
@@ -420,12 +420,6 @@ ABIArgInfo ARMABIInfo::classifyArgumentType(QualType Ty, bool isVariadic,
420420
/*Realign=*/TyAlign > ABIAlign);
421421
}
422422

423-
// On RenderScript, coerce Aggregates <= 64 bytes to an integer array of
424-
// same size and alignment.
425-
if (getTarget().isRenderScriptTarget()) {
426-
return coerceToIntArray(Ty, getContext(), getVMContext());
427-
}
428-
429423
// Otherwise, pass by coercing to a structure of the appropriate size.
430424
llvm::Type* ElemTy;
431425
unsigned SizeRegs;
@@ -609,11 +603,6 @@ ABIArgInfo ARMABIInfo::classifyReturnType(QualType RetTy, bool isVariadic,
609603
// are returned indirectly.
610604
uint64_t Size = getContext().getTypeSize(RetTy);
611605
if (Size <= 32) {
612-
// On RenderScript, coerce Aggregates <= 4 bytes to an integer array of
613-
// same size and alignment.
614-
if (getTarget().isRenderScriptTarget()) {
615-
return coerceToIntArray(RetTy, getContext(), getVMContext());
616-
}
617606
if (getDataLayout().isBigEndian())
618607
// Return in 32 bit integer integer type (as if loaded by LDR, AAPCS 5.4)
619608
return ABIArgInfo::getDirect(llvm::Type::getInt32Ty(getVMContext()));

‎clang/lib/Driver/Types.cpp

-2
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,6 @@ bool types::isDerivedFromC(ID Id) {
201201
case TY_PP_ObjCXX:
202202
case TY_PP_ObjCXX_Alias:
203203
case TY_ObjCXX:
204-
case TY_RenderScript:
205204
case TY_PP_CHeader:
206205
case TY_CHeader:
207206
case TY_CLHeader:
@@ -328,7 +327,6 @@ types::ID types::lookupTypeForExtension(llvm::StringRef Ext) {
328327
.Case("ll", TY_LLVM_IR)
329328
.Case("mi", TY_PP_ObjC)
330329
.Case("mm", TY_ObjCXX)
331-
.Case("rs", TY_RenderScript)
332330
.Case("adb", TY_Ada)
333331
.Case("ads", TY_Ada)
334332
.Case("asm", TY_PP_Asm)

‎clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,6 @@ StringRef getLanguageName(Language Lang) {
213213
case Language::OpenCL:
214214
case Language::OpenCLCXX:
215215
case Language::CUDA:
216-
case Language::RenderScript:
217216
case Language::HIP:
218217
case Language::HLSL:
219218

‎clang/lib/Frontend/ASTUnit.cpp

-2
Original file line numberDiff line numberDiff line change
@@ -2699,8 +2699,6 @@ InputKind ASTUnit::getInputKind() const {
26992699
Lang = Language::OpenCL;
27002700
else if (LangOpts.CUDA)
27012701
Lang = Language::CUDA;
2702-
else if (LangOpts.RenderScript)
2703-
Lang = Language::RenderScript;
27042702
else if (LangOpts.CPlusPlus)
27052703
Lang = LangOpts.ObjC ? Language::ObjCXX : Language::CXX;
27062704
else

0 commit comments

Comments
 (0)
Please sign in to comment.