Skip to content

Commit c98dd8b

Browse files
committed
refactor
1 parent 5cacdbd commit c98dd8b

File tree

1 file changed

+12
-17
lines changed

1 file changed

+12
-17
lines changed

crates/rustc_codegen_spirv/src/linker/inline_globals.rs

+12-17
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ use rspirv::spirv::{Op};
33
use rustc_data_structures::fx::{FxHashMap, FxHashSet};
44
use rustc_session::Session;
55

6-
// bool is if this needs stored
76
#[derive(Debug, Clone, PartialEq)]
87
struct NormalizedInstructions {
98
vars: Vec<Instruction>,
@@ -38,6 +37,7 @@ impl NormalizedInstructions {
3837
for inst in &mut self.insts {
3938
Self::fix_instruction(self.root, inst, &mut id_map, bound, new_root);
4039
}
40+
self.root = new_root;
4141
}
4242

4343
fn fix_instruction(
@@ -139,40 +139,36 @@ fn inline_global_varaibles_rec(module: &mut Module) -> super::Result<bool> {
139139
};
140140
for i in 1..inst.operands.len() {
141141
let key = (function_id, i as u32 - 1);
142+
// default to invalid to avoid duplicated code
143+
let mut is_invalid = true;
142144
match &inst.operands[i] {
143145
&Operand::IdRef(w) => match &function_args.get(&key) {
144146
None => {
145147
match get_const_arg_insts(bound, &variables, &insts, &ref_stores, w) {
146148
Some(insts) => {
149+
is_invalid = false;
147150
function_args.insert(key, FunctionArg::Insts(insts));
148151
}
149-
None => {
150-
function_args.insert(key, FunctionArg::Invalid);
151-
}
152+
None => {}
152153
}
153154
}
154155
Some(FunctionArg::Insts(w2)) => {
155156
let new_insts =
156157
get_const_arg_insts(bound, &variables, &insts, &ref_stores, w);
157158
match new_insts {
158159
Some(new_insts) => {
159-
if new_insts != *w2 {
160-
function_args.insert(key, FunctionArg::Invalid);
161-
}
162-
}
163-
None => {
164-
function_args.insert(key, FunctionArg::Invalid);
160+
is_invalid = new_insts != *w2;
165161
}
162+
None => {}
166163
}
167164
}
168-
_ => {
169-
function_args.insert(key, FunctionArg::Invalid);
170-
}
165+
_ => {}
171166
},
172-
_ => {
173-
function_args.insert(key, FunctionArg::Invalid);
174-
}
167+
_ => {}
175168
};
169+
if is_invalid {
170+
function_args.insert(key, FunctionArg::Invalid);
171+
}
176172
}
177173
}
178174
}
@@ -312,7 +308,6 @@ fn get_const_arg_insts(
312308
let fake_root = bound;
313309
bound += 1;
314310
res.fix_ids(&mut bound, fake_root);
315-
res.root = fake_root;
316311
Some(res)
317312
}
318313

0 commit comments

Comments
 (0)