A statement with a function call cannot be hoisted unless we know that it (and everything it calls transitively) only uses its explicit inputs and doesn't look at any global variables or uses some other global resource like the clock.
The hasNoSideEffects functions are used to analyze each line before determining if it can be hoisted or not. See commit 4d30d55ab32ebad785da0e31dcb2a5dc112bb2e0.
A statement with a function call cannot be hoisted unless we know that it (and everything it calls transitively) only uses its explicit inputs and doesn't look at any global variables or uses some other global resource like the clock.
The error is near parallel-ir-simplify.jl:269.