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

"Instruction does not dominate all uses" when translating fixed point combinator #597

Closed
msullivan opened this issue Jun 30, 2011 · 4 comments

Comments

@msullivan
Copy link
Contributor

Trying to translate the function

fn fix[A,B](fn (fn (&A) -> B, &A) -> B f, &A x) -> B {
    ret f(bind fix(f, _), x);
}

produces the LLVM messages:

Instruction does not dominate all uses!
  %19 = load %tydesc** %18
  store %tydesc* %19, %tydesc** %6
Instruction does not dominate all uses!
  %21 = load %tydesc** %20
  store %tydesc* %21, %tydesc** %7
Broken module found, compilation aborted!
Stack dump:
0.      Running pass 'Function Pass Manager' on module 'rust_out'.
1.      Running pass 'Module Verifier' on function '@_ZN3fix7thunk14E'
Aborted
@msullivan
Copy link
Contributor Author

It works fine if I monomorphize it.

@brson
Copy link
Contributor

brson commented Jun 30, 2011

Probably the same issue as #375

@msullivan
Copy link
Contributor Author

A somewhat reduced test-case:

fn oops[A](@A x)  {
    bind oops(x);
}

@msullivan
Copy link
Contributor Author

I am going to close this because it is a dupe. (I should have done this a while ago...)

arielb1 pushed a commit to arielb1/rust that referenced this issue Apr 10, 2015
Tiny typo in the Unicode section.
keeperofdakeys pushed a commit to keeperofdakeys/rust that referenced this issue Dec 12, 2017
Bump to 0.2.23

I've added a bunch of constants and xattr support for macos. We've also got preliminary support for uclibc with rust-lang#578.
celinval added a commit to celinval/rust-dev that referenced this issue Jun 4, 2024
* Adding support to new rmc prelude definitions

- Create an rmc crate (rust-lang#231).
- Used rust compliant names for the functions (rust-lang#589).
- Changed rmc-rustc to inject the rmc prelude as part of the compilation
  as well as other rmc configuration flags.
- Added options to rmc-rustc to print binary path and flags so it can be
  used in other scripts.

* Add a script to build rmc library

* Update tests to use new injected prelude.
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

No branches or pull requests

2 participants