IntelLabs / ParallelAccelerator.jl

The ParallelAccelerator package, part of the High Performance Scripting project at Intel Labs
BSD 2-Clause "Simplified" License
294 stars 32 forks source link

Hoisting only looks at use list and ignores function calls. #82

Closed DrTodd13 closed 8 years ago

DrTodd13 commented 8 years ago

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.

DrTodd13 commented 8 years ago

The hasNoSideEffects functions are used to analyze each line before determining if it can be hoisted or not. See commit 4d30d55ab32ebad785da0e31dcb2a5dc112bb2e0.