Skip to content

Commit

Permalink
WIP: The one SROA pass to rule them all
Browse files Browse the repository at this point in the history
  • Loading branch information
Keno committed Apr 11, 2018
1 parent 18ac6e6 commit b4f9f48
Show file tree
Hide file tree
Showing 6 changed files with 652 additions and 202 deletions.
5 changes: 3 additions & 2 deletions base/compiler/ssair/driver.jl
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ include("compiler/ssair/passes.jl")
include("compiler/ssair/inlining2.jl")
include("compiler/ssair/verify.jl")
include("compiler/ssair/legacy.jl")
@isdefined(Base) && include("compiler/ssair/show.jl")
#@isdefined(Base) && include("compiler/ssair/show.jl")

function normalize_expr(stmt::Expr)
if stmt.head === :gotoifnot
Expand Down Expand Up @@ -147,8 +147,9 @@ function run_passes(ci::CodeInfo, nargs::Int, linetable::Vector{LineInfoNode}, s
@timeit "Inlining" ir = ssa_inlining_pass!(ir, nothing, linetable, sv)
#@timeit "verify 2" verify_ir(ir)
@timeit "domtree 2" domtree = construct_domtree(ir.cfg)
ir = compact!(ir)
@timeit "SROA" ir = getfield_elim_pass!(ir, domtree)
@timeit "compact 2" ir = compact!(ir)
ir = adce_pass!(ir)
@timeit "type lift" ir = type_lift_pass!(ir)
@timeit "compact 3" ir = compact!(ir)
#@timeit "verify 3" verify_ir(ir)
Expand Down
Loading

0 comments on commit b4f9f48

Please sign in to comment.