Skip to content

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

New issue

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

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

Already on GitHub? # to your account

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.
GuillaumeGomez pushed a commit to GuillaumeGomez/rust that referenced this issue Jan 24, 2025
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants