24
24
#include " llvm/IR/Module.h"
25
25
#include " llvm/InitializePasses.h"
26
26
#include " llvm/Pass.h"
27
+ #include " llvm/Support/ErrorHandling.h"
27
28
#include " llvm/Support/VersionTuple.h"
28
29
#include " llvm/TargetParser/Triple.h"
29
30
#include < cstdint>
@@ -34,7 +35,7 @@ using namespace llvm::dxil;
34
35
// / A simple Wrapper DiagnosticInfo that generates Module-level diagnostic
35
36
class DiagnosticInfoModuleFormat : public DiagnosticInfo {
36
37
private:
37
- Twine Msg;
38
+ const Twine Msg;
38
39
const Module &Mod;
39
40
40
41
public:
@@ -45,12 +46,6 @@ class DiagnosticInfoModuleFormat : public DiagnosticInfo {
45
46
DiagnosticSeverity Severity = DS_Error)
46
47
: DiagnosticInfo(DK_Unsupported, Severity), Msg(Msg), Mod(M) {}
47
48
48
- static bool classof (const DiagnosticInfo *DI) {
49
- return DI->getKind () == DK_Unsupported;
50
- }
51
-
52
- const Twine &getMessage () const { return Msg; }
53
-
54
49
void print (DiagnosticPrinter &DP) const override {
55
50
std::string Str;
56
51
raw_string_ostream OS (Str);
@@ -166,7 +161,7 @@ getTagValueAsMetadata(EntryPropsTag Tag, uint64_t Value, LLVMContext &Ctx) {
166
161
ConstantInt::get (Type::getInt32Ty (Ctx), Value)));
167
162
break ;
168
163
default :
169
- assert ( false && " NYI: Unhandled entry property tag" );
164
+ llvm_unreachable ( " NYI: Unhandled entry property tag" );
170
165
}
171
166
return MDVals;
172
167
}
@@ -191,13 +186,12 @@ getEntryPropAsMetadata(const EntryProperties &EP, uint64_t EntryShaderFlags,
191
186
if (EP.ShaderStage == Triple::EnvironmentType::Compute) {
192
187
MDVals.emplace_back (ConstantAsMetadata::get (
193
188
ConstantInt::get (Type::getInt32Ty (Ctx), NumThreadsTag)));
194
- std::vector<Metadata *> NumThreadVals;
195
- NumThreadVals.emplace_back (ConstantAsMetadata::get (
196
- ConstantInt::get (Type::getInt32Ty (Ctx), EP.NumThreadsX )));
197
- NumThreadVals.emplace_back (ConstantAsMetadata::get (
198
- ConstantInt::get (Type::getInt32Ty (Ctx), EP.NumThreadsY )));
199
- NumThreadVals.emplace_back (ConstantAsMetadata::get (
200
- ConstantInt::get (Type::getInt32Ty (Ctx), EP.NumThreadsZ )));
189
+ Metadata *NumThreadVals[] = {ConstantAsMetadata::get (ConstantInt::get (
190
+ Type::getInt32Ty (Ctx), EP.NumThreadsX )),
191
+ ConstantAsMetadata::get (ConstantInt::get (
192
+ Type::getInt32Ty (Ctx), EP.NumThreadsY )),
193
+ ConstantAsMetadata::get (ConstantInt::get (
194
+ Type::getInt32Ty (Ctx), EP.NumThreadsZ ))};
201
195
MDVals.emplace_back (MDNode::get (Ctx, NumThreadVals));
202
196
}
203
197
}
@@ -333,8 +327,8 @@ static void translateMetadata(Module &M, const DXILResourceMap &DRM,
333
327
if (MMDI.ShaderProfile != Triple::EnvironmentType::Library) {
334
328
if (EntryProp.ShaderStage != MMDI.ShaderProfile ) {
335
329
M.getContext ().diagnose (DiagnosticInfoModuleFormat (
336
- M, " Non-library shader: Stage of Shader entry different from "
337
- " target profile" ));
330
+ M, " Non-library shader: Stage of shader entry different from "
331
+ " shader target profile" ));
338
332
}
339
333
}
340
334
EntryFnMDNodes.emplace_back (emitEntryMD (EntryProp, Signatures, ResourceMD,
0 commit comments