Skip to content

Commit 7ddc366

Browse files
committed
Work around SPIRV validation failure.
It may be relying on initializing InstrInfo with the under-initialized subtarget.
1 parent edad345 commit 7ddc366

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

llvm/lib/Target/SPIRV/SPIRVSubtarget.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,15 @@ static bool isAtLeastVer(VersionTuple Target, VersionTuple VerToCompareTo) {
4949
return Target.empty() || Target >= VerToCompareTo;
5050
}
5151

52+
// FIXME: initSubtargetDependencies should be called on the InstrInfo
53+
// initializer, not the following FrameLowering
5254
SPIRVSubtarget::SPIRVSubtarget(const Triple &TT, const std::string &CPU,
5355
const std::string &FS,
5456
const SPIRVTargetMachine &TM)
5557
: SPIRVGenSubtargetInfo(TT, CPU, /*TuneCPU=*/CPU, FS),
56-
PointerSize(TM.getPointerSizeInBits(/* AS= */ 0)),
57-
InstrInfo(initSubtargetDependencies(CPU, FS)), FrameLowering(*this),
58-
TLInfo(TM, *this), TargetTriple(TT) {
58+
PointerSize(TM.getPointerSizeInBits(/* AS= */ 0)), InstrInfo(*this),
59+
FrameLowering(initSubtargetDependencies(CPU, FS)), TLInfo(TM, *this),
60+
TargetTriple(TT) {
5961
switch (TT.getSubArch()) {
6062
case Triple::SPIRVSubArch_v10:
6163
SPIRVVersion = VersionTuple(1, 0);

0 commit comments

Comments
 (0)