|
@@ -153,6 +153,8 @@ void DxilLegalizeSampleOffsetPass::FinalCheck(
|
|
void DxilLegalizeSampleOffsetPass::TryUnrollLoop(
|
|
void DxilLegalizeSampleOffsetPass::TryUnrollLoop(
|
|
std::vector<Instruction *> &illegalOffsets, Function &F) {
|
|
std::vector<Instruction *> &illegalOffsets, Function &F) {
|
|
legacy::FunctionPassManager PM(F.getParent());
|
|
legacy::FunctionPassManager PM(F.getParent());
|
|
|
|
+ // Scalarize aggregates as mem2reg only applies on scalars.
|
|
|
|
+ PM.add(createSROAPass());
|
|
// Always need mem2reg for simplify illegal offsets.
|
|
// Always need mem2reg for simplify illegal offsets.
|
|
PM.add(createPromoteMemoryToRegisterPass());
|
|
PM.add(createPromoteMemoryToRegisterPass());
|
|
|
|
|