[codegen/optimize_dce.cpp] fixed bugs whereby barriers were removed by DCE

This commit is contained in:
Philippe Tillet
2019-07-31 15:11:10 -07:00
parent 5af7e5adac
commit bb32ac56c9
8 changed files with 60 additions and 17 deletions

View File

@@ -20,7 +20,8 @@ void optimize_dce::run(ir::module &mod) {
for(ir::instruction *i: block->get_inst_list()){
if(dynamic_cast<ir::io_inst*>(i) || dynamic_cast<ir::copy_to_shared_inst*>(i) || dynamic_cast<ir::return_inst*>(i)
|| dynamic_cast<ir::branch_inst*>(i) || dynamic_cast<ir::cond_branch_inst*>(i)
|| dynamic_cast<ir::atomic_cas_inst*>(i) || dynamic_cast<ir::atomic_exch_inst*>(i) || dynamic_cast<ir::atomic_add_inst*>(i) ){
|| dynamic_cast<ir::atomic_cas_inst*>(i) || dynamic_cast<ir::atomic_exch_inst*>(i) || dynamic_cast<ir::atomic_add_inst*>(i)
|| dynamic_cast<ir::barrier_inst*>(i)){
work_list.push_back(i);
marked.insert(i);
}