It's a preparation of to combine shadow checks of the same instruction
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
test?
llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp | ||
---|---|---|
1308 | I think this yields a stable sort. Is that what you want? | |
1319 | I wonder if making an implementation that materializes one check would avoid this awkward slicing. I think you could cook all the logic from materializeInstructionChecks into materializeOneCheck and be done. |
llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp | ||
---|---|---|
1305–1324 | You are trying to dedupe members of the list, right? Isn't it more efficient to use a hash table instead? Wherever you consume this have a hash table, add elements to it and check check if it is already present then just skip over it. |
llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp | ||
---|---|---|
1305–1324 | Not exactly. I need to handle them together. |
I think this yields a stable sort. Is that what you want?
Is there any possibility items could be added in different orders in different runs?
If both are true, then the code generation is non-deterministic.