Exemplo n.º 1
0
void Processor::Process()
{
  static const size_t hc = std::max(1U, std::thread::hardware_concurrency());
    
  std::vector<std::thread> threads(hc - 1);
  for (auto & t : threads) {
    t = std::thread([this] { ProcessImpl(); });
  }

  ProcessImpl();
  
  for (auto & t : threads) {
    t.join();
  }
}
Pass::Status LocalSingleBlockLoadStoreElimPass::Process() {
  Initialize();
  return ProcessImpl();
}
Pass::Status LocalAccessChainConvertPass::Process() {
  Initialize();
  return ProcessImpl();
}
Pass::Status CommonUniformElimPass::Process(ir::Module* module) {
  Initialize(module);
  return ProcessImpl();
}
Pass::Status AggressiveDCEPass::Process() {
  // Initialize extensions whitelist
  InitExtensions();
  return ProcessImpl();
}
Pass::Status LocalAccessChainConvertPass::Process(ir::Module* module) {
  Initialize(module);
  return ProcessImpl();
}