@@ -1460,45 +1460,66 @@ async def run_flow(self):
14601460 self .opts .verbose ,
14611461 )
14621462
1463- input_physical = self .prepend_tmp ("input_physical.mlir" )
1464- processes = [
1465- self .do_call (
1466- task1 ,
1467- [
1468- "aie-opt" ,
1469- "--aie-create-pathfinder-flows" ,
1470- file_with_addresses ,
1471- "-o" ,
1472- input_physical ,
1473- ],
1474- force = True ,
1475- )
1476- ]
1477-
1478- await asyncio .gather (* processes )
1463+ requires_routing = (
1464+ opts .xcl
1465+ or opts .cdo
1466+ or opts .pdi
1467+ or opts .compile
1468+ or opts .compile_host
1469+ or opts .aiesim
1470+ )
1471+ if requires_routing :
1472+ input_physical = self .prepend_tmp ("input_physical.mlir" )
1473+ processes = [
1474+ self .do_call (
1475+ task1 ,
1476+ [
1477+ "aie-opt" ,
1478+ "--aie-create-pathfinder-flows" ,
1479+ file_with_addresses ,
1480+ "-o" ,
1481+ input_physical ,
1482+ ],
1483+ force = True ,
1484+ )
1485+ ]
1486+ await asyncio .gather (* processes )
1487+ else :
1488+ input_physical = file_with_addresses
14791489
14801490 self .progress_bar .update (task1 , advance = 1 )
14811491
14821492 # 2.) Generate code for each core
1483- task2 = progress_bar .add_task (
1484- "[green] Generating code for each core" , total = 3 , command = ""
1493+ requires_core_compilation = (
1494+ opts .xcl
1495+ or opts .cdo
1496+ or opts .pdi
1497+ or opts .compile
1498+ or opts .compile_host
1499+ or opts .aiesim
14851500 )
1501+ if requires_core_compilation :
1502+ task2 = progress_bar .add_task (
1503+ "[green] Generating code for each core" , total = 3 , command = ""
1504+ )
14861505
1487- # create core ELF files for each device and core
1488- elf_paths = {}
1489- for i , (device_op , device_name ) in enumerate (devices ):
1490- aie_target , aie_peano_target = aie_targets [i ], aie_peano_targets [i ]
1491- elf_paths [device_name ] = await self .process_cores (
1492- device_op ,
1493- device_name ,
1494- file_with_addresses ,
1495- aie_target ,
1496- aie_peano_target ,
1497- task2 ,
1506+ # create core ELF files for each device and core
1507+ elf_paths = {}
1508+ for i , (device_op , device_name ) in enumerate (devices ):
1509+ aie_target , aie_peano_target = aie_targets [i ], aie_peano_targets [i ]
1510+ elf_paths [device_name ] = await self .process_cores (
1511+ device_op ,
1512+ device_name ,
1513+ file_with_addresses ,
1514+ aie_target ,
1515+ aie_peano_target ,
1516+ task2 ,
1517+ )
1518+ input_physical_with_elfs = await self .write_elf_paths_to_mlir (
1519+ input_physical , elf_paths
14981520 )
1499- input_physical_with_elfs = await self .write_elf_paths_to_mlir (
1500- input_physical , elf_paths
1501- )
1521+ else :
1522+ input_physical_with_elfs = input_physical
15021523
15031524 # 3.) Targets that require the cores to be lowered but apply across all devices
15041525
0 commit comments