Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Preserve names of arrays and iteration variables across generated boundary #75

Merged
merged 1 commit into from
Mar 16, 2020
Merged

Conversation

timholy
Copy link
Contributor

@timholy timholy commented Mar 16, 2020

Fixes #74

@codecov-io
Copy link

codecov-io commented Mar 16, 2020

Codecov Report

Merging #75 into master will increase coverage by 0.05%.
The diff coverage is 83.33%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master      #75      +/-   ##
==========================================
+ Coverage   93.23%   93.28%   +0.05%     
==========================================
  Files          27       27              
  Lines        2808     2815       +7     
==========================================
+ Hits         2618     2626       +8     
+ Misses        190      189       -1     
Impacted Files Coverage Δ
src/reconstruct_loopset.jl 92.41% <73.33%> (ø)
src/condense_loopset.jl 91.42% <100.00%> (+0.10%) ⬆️
src/memory_ops_common.jl 89.23% <0.00%> (ø)
src/determinestrategy.jl 93.97% <0.00%> (+0.04%) ⬆️
src/vectorizationbase_extensions.jl 75.00% <0.00%> (+17.85%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 07e71a1...7b43d46. Read the comment docs.

@chriselrod chriselrod merged commit 681f828 into JuliaSIMD:master Mar 16, 2020
@chriselrod
Copy link
Member

This is fantastic!

As a quick comment, I avoided making any of the structs parametric because I wanted to move towards everything being concretely typed as quickly as possible, although I haven't really dived into how well I'm actually achieving that. Regardless, gensym is actually much slower than a dynamic dispatch, so this should speed up compilation if anything...

@timholy timholy deleted the teh/names branch March 16, 2020 14:00
@timholy
Copy link
Contributor Author

timholy commented Mar 16, 2020

If we add enough @nospecialize statements everywhere, concrete typing probably shouldn't matter. (You don't have any reason other than compile performance to want that, right?)

@chriselrod
Copy link
Member

Yes, compile performance is the only reason. Any general advice on using @nospecialize?

@timholy
Copy link
Contributor Author

timholy commented Mar 16, 2020

I'll submit a PR. Best approach is to analyze the number of specializations per method; that tells you how many times they've been compiled. Whole goal is to avoid recompilation.

@timholy
Copy link
Contributor Author

timholy commented Mar 16, 2020

Not as straightforward as I hoped, it may be a Julia bug. JuliaLang/julia#35131

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

A simpler DSL? (Pass code literal to _avx_!)
3 participants