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

Avoid needless union in LLVM::ABI::AArch64#homogeneous_aggregate? #11199

Merged
merged 1 commit into from
Sep 13, 2021

Conversation

asterite
Copy link
Member

The type of homog_agg ended up being like Tuple(Type, Int32 | UInt64)? but using UInt64 all the time works.

There's really no need to do this change, but... with this, the interpreter can process a lot more files. It's a bit of cheating, because the interpreter should support this, but right now I'm a bit lazy to implement that. I will! Eventually...

But with this change, for instance, the interpreter can already interpreter the compiler's formatter, and even doing something like crystal i src/compiler/crystal.cr tool format foo.cr works 😮

That said, it still takes a lot of time... doing the semantic analysis takes the same time, of course, but then producing bytecode, when there's a lot of code, takes a significant amount of time. It's less that what it takes to generate LLVM, but it's also not incredibly fast. Maybe there's still room for optimization!

(just to curb your enthusiasm, the interpreter might not be a fast alternative to compiled mode, but at least it will bring a repl and a debugger 🤷 )

@asterite asterite added this to the 1.2.0 milestone Sep 13, 2021
@asterite asterite merged commit 00ca813 into master Sep 13, 2021
@asterite asterite deleted the llvm-abi-aarch64-avoid-union branch September 13, 2021 20:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants