Skip to content

Commit e20f505

Browse files
committed
add rules for compilerbarrier
1 parent 677d528 commit e20f505

File tree

3 files changed

+18
-1
lines changed

3 files changed

+18
-1
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "ChainRules"
22
uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2"
3-
version = "1.48.1"
3+
version = "1.49.0"
44

55
[deps]
66
Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e"

src/rulesets/Core/core.jl

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,14 @@ function rrule(::typeof(ifelse), c, a::Number, b::Number)
3232
ifelse_pullback(Δ) = (NoTangent(), NoTangent(), ifelse(c, Δ, zero(Δ)), ifelse(c, zero(Δ), Δ))
3333
return ifelse(c, a, b), ifelse_pullback
3434
end
35+
36+
if isdefined(Core, :compilerbarrier)
37+
function ChainRulesCore.frule((_, _, Δ), ::typeof(Core.compilerbarrier), setting, value)
38+
return (Core.compilerbarrier(setting, value), Δ)
39+
end
40+
41+
function ChainRulesCore.rrule(::typeof(Core.compilerbarrier), setting, value)
42+
compilerbarrier_pullback(Δ) = NoTangent(), NoTangent(), Δ
43+
return (Core.compilerbarrier(setting, value), compilerbarrier_pullback)
44+
end
45+
end

test/rulesets/Core/core.jl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,9 @@ end
1010
test_rrule(ifelse, true, [1.1], [2.0]; check_inferred=false)
1111
test_frule(ifelse, false, [1.1], [2.0]; check_inferred=false)
1212
end
13+
14+
isdefined(Core, :compilerbarrier) && @testset "compilerbarrier" begin
15+
test_frule(Core.compilerbarrier, :const, 42.0)
16+
test_rrule(Core.compilerbarrier, :const, 42.0)
17+
end
18+

0 commit comments

Comments
 (0)