Skip to content

Commit 50c6166

Browse files
authored
Fix logic for dumping MLIR modules (#1070)
In certain cases we were _always_ dumping the modules even with a successful compilation and `DUMP_MLIR_ALWAYS=false`. Add also a relevant test to catch this mistake.
1 parent 1357a1a commit 50c6166

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

src/mlir/IR/Pass.jl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,9 @@ function try_compile_dump_mlir(f, mod::Module, pm=nothing)
107107
failed = true
108108
rethrow()
109109
finally
110-
dump_mlir(mod, pm; failed)
110+
if failed || DUMP_MLIR_ALWAYS[]
111+
dump_mlir(mod, pm; failed)
112+
end
111113
end
112114
end
113115

test/basic.jl

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1087,16 +1087,24 @@ end
10871087
always_old = Reactant.MLIR.IR.DUMP_MLIR_ALWAYS[]
10881088
dir_old = Reactant.MLIR.IR.DUMP_MLIR_DIR[]
10891089

1090-
Reactant.MLIR.IR.DUMP_MLIR_ALWAYS[] = true
1091-
10921090
mktempdir() do dir
1091+
Reactant.MLIR.IR.DUMP_MLIR_ALWAYS[] = true
10931092
Reactant.MLIR.IR.DUMP_MLIR_DIR[] = dir
10941093
@compile sin.(Reactant.to_rarray(Float32[1.0]))
10951094
for mod in readdir(dir; join=true)
10961095
@test contains(read(mod, String), "hlo.sine")
10971096
end
10981097
end
10991098

1099+
mktempdir() do dir
1100+
Reactant.MLIR.IR.DUMP_MLIR_ALWAYS[] = false
1101+
Reactant.MLIR.IR.DUMP_MLIR_DIR[] = dir
1102+
@compile exp.(Reactant.to_rarray(Float32[1.0]))
1103+
# Make sure we don't save anything to file when compilation is
1104+
# successful and `DUMP_MLIR_ALWAYS=false`.
1105+
@test isempty(readdir(dir; join=true))
1106+
end
1107+
11001108
Reactant.MLIR.IR.DUMP_MLIR_ALWAYS[] = always_old
11011109
Reactant.MLIR.IR.DUMP_MLIR_DIR[] = dir_old
11021110
end

0 commit comments

Comments
 (0)