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

Remove (most) LLVM intrinsics from the compiler #5785

Closed

Conversation

auroranockert
Copy link
Contributor

This commit is similar to the old one, and does the following

  • Removes most LLVM intrinsics from the compiler
  • Adds functions that optimize down to specific LLVM intrinsics to
    libcore
  • Adds a pragma #[constant_arg] for constant integer arguments to intrinsics (and other functions)
  • Utilize the sqrt intrinsic for f32/f64 since LLVM lowers it to an actual instruction sequence.

This commit does the following

 - Removes most LLVM intrinsics from the compiler
 - Adds functions that optimize down to specific LLVM intrinsics to
   libcore
 - Utilize the sqrt intrinsic in f32/f64
@auroranockert
Copy link
Contributor Author

Once a new snapshot is made, the memory-related (memmove, memcpy and memset?) intrinsics can be removed as well, but I left them unmodified for now to simplify the transition since they are called by rustc.

@brson
Copy link
Contributor

brson commented May 10, 2013

@JensNockert How do you feel about this branch now? Can it be done?

@auroranockert
Copy link
Contributor Author

I am pretty sure it can be done, but there are some (minor) issues on Windows that I cannot debug right now.

Hopefully when I am finished moving, I can rebase it upon the other intrinsics work.

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.

5 participants