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

wip: hir refactoring #332

Draft
wants to merge 49 commits into
base: next
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 5 commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
1051624
wip: ir redesign
bitwalker Sep 13, 2024
117dfcf
wip: basic structure landed, starting refinement
bitwalker Sep 19, 2024
3e48bb1
wip: move hir2/src/core to hir2/src/ir
bitwalker Sep 19, 2024
b8ee446
feat: support no-std builds of midenc_hir_symbol
bitwalker Sep 20, 2024
db1aca0
wip: implement hir dialect ops, flesh out remaining core ir infra
bitwalker Sep 23, 2024
0057afc
feat: implement #[operation] macro
bitwalker Oct 4, 2024
95379c6
fix: expose sync module from hir-symbol
bitwalker Oct 4, 2024
1146d98
feat: implement pretty-print trait for Symbol/Type
bitwalker Oct 4, 2024
7e37cf1
wip: implement useful static casting traits
bitwalker Oct 4, 2024
03cb6f5
wip: implement support for more attributes, with pretty printing
bitwalker Oct 4, 2024
0800423
wip: implement generic pretty printer for ir
bitwalker Oct 4, 2024
5ad94ac
wip: improve ergonomics of entity refs, implement support for generic…
bitwalker Oct 4, 2024
9238669
wip: implement key infrastructure for operations, patterns, builders
bitwalker Oct 4, 2024
edf8a04
wip: make callables fundamental, move function/module to hir dialect
bitwalker Oct 5, 2024
e839791
wip: add constant materialization hook to dialect
bitwalker Oct 19, 2024
07cf501
chore: add some useful deps
bitwalker Oct 19, 2024
c56be9b
wip: promote attributes to top level, add ability to clone and hash t…
bitwalker Oct 19, 2024
54ccab6
wip: implement a variety of useful apis on regions/blocks/ops/values
bitwalker Oct 20, 2024
de12ced
wip: implement region/non-region branch op interfaces, region simplif…
bitwalker Oct 20, 2024
72c4f12
wip: implement op folder
bitwalker Oct 20, 2024
b69c4ec
feat: implement some useful display helpers
bitwalker Oct 20, 2024
05e1100
wip: implement hir dialect builder and op impls, particularly control…
bitwalker Oct 20, 2024
f7aedcb
feat: implement pattern rewriter infrastructure
bitwalker Oct 20, 2024
05c3036
chore: normalize use of fxhash-based hash maps
bitwalker Oct 23, 2024
9c86f86
feat: implement pass infrastructure
bitwalker Oct 25, 2024
f7f89f4
feat: add small data structures to hir2, implement smalldeque
bitwalker Oct 28, 2024
0aa10e5
feat: add iterator extension trait for use in hir2
bitwalker Oct 28, 2024
8c32fc6
feat: be more conservative with how unsafe refs interact with debug p…
bitwalker Oct 28, 2024
3ffd2c4
feat: implement cfg abstractions and utilities
bitwalker Oct 28, 2024
64a0be3
feat: implement dominator and post-dominator analyses
bitwalker Oct 28, 2024
9e9dfe8
feat: implement loop analysis
bitwalker Oct 28, 2024
132bd99
feat: add typed arena implementation to adt module
bitwalker Nov 5, 2024
5a25ffa
feat: support semver version attributes/management
bitwalker Nov 5, 2024
4c18c2e
feat: support eq over trait objects
bitwalker Nov 5, 2024
7489a71
feat: implement support for binary constants + pooling
bitwalker Nov 5, 2024
bf988f3
feat: provide 'type_name' helper for AsAny impls
bitwalker Nov 5, 2024
a35287f
fix: ensure Block implements Spanned
bitwalker Nov 5, 2024
faf4a01
feat: allow block operands to be displayed
bitwalker Nov 5, 2024
f17bdc2
fix: ensure entity refs impl spanned transitively
bitwalker Nov 5, 2024
b9a79b2
feat: implement hir components, global ops, various fixes improvement…
bitwalker Nov 5, 2024
5331ef4
feat: clean up symbol/symbol table impl, provide management facade
bitwalker Nov 5, 2024
edb28b7
chore: disable editorconfig setting playing havoc with zed
bitwalker Nov 5, 2024
b35c5a4
feat: implement data-flow analysis framework and initial analyses
bitwalker Nov 5, 2024
63a583e
feat: implement support for op canonicalization
bitwalker Nov 5, 2024
71ab3c1
feat: allow operations to provide their own pretty printer
bitwalker Nov 5, 2024
0770fb9
feat: finish up some leftover tasks in pass manager
bitwalker Nov 5, 2024
0f08809
feat: implement canonicalizer transform
bitwalker Nov 5, 2024
ebaac37
feat: implement sparse constant propagation analysis
bitwalker Nov 6, 2024
cec7f20
feat: implement sparse conditional constant propagation transform
bitwalker Nov 6, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
91 changes: 71 additions & 20 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ members = [
"codegen/*",
"frontend-wasm",
"hir",
"hir2",
"hir-analysis",
"hir-macros",
"hir-symbol",
Expand Down Expand Up @@ -52,9 +53,11 @@ clap = { version = "4.1", default-features = false, features = [
] }
cranelift-entity = "0.108"
cranelift-bforest = "0.108"
compact_str = { version = "0.8", default-features = false }
env_logger = "0.11"
either = { version = "1.10", default-features = false }
expect-test = "1.4.1"
hashbrown = { version = "0.14", features = ["nightly"] }
Inflector = "0.11"
intrusive-collections = "0.9"
inventory = "0.3"
Expand Down
Loading
Loading