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

required environment variables have no checks in all.bash #12

Closed
gopherbot opened this issue Nov 11, 2009 · 3 comments
Closed

required environment variables have no checks in all.bash #12

gopherbot opened this issue Nov 11, 2009 · 3 comments

Comments

@gopherbot
Copy link
Contributor

by bear42:

1. don't read all of the docs and just run ./all.bash like I did ;)

the attached patch adds some very basic error checking for the three
required environment vars

Attachments:

  1. make.bash.patch (1063 bytes)
@gopherbot
Copy link
Contributor Author

Comment 1 by bear42:

new patch that also checks for GOBIN setup

Attachments:

  1. make.bash.patch (1271 bytes)

@rsc
Copy link
Contributor

rsc commented Nov 11, 2009

Comment 2:

This issue was closed by revision 2d70d60.

Status changed to Fixed.

Merged into issue #-.

@gopherbot
Copy link
Contributor Author

CL https://golang.org/cl/22600 mentions this issue.

@golang golang locked and limited conversation to collaborators Jun 24, 2016
tklauser pushed a commit to tklauser/go that referenced this issue May 8, 2019
The behavior of the RISCV BRANCH block is not safe. It reaches into the
control value and uses the registers of the control's args, rather than
the control value itself.

regalloc ensures that the control value is in a register, but it does
*not* do so for the control's arguments. It does not know that BRANCH
uses them and thus may not consider them live.

The reason for this weird BRANCH behavior is that RISC-V branches are
binary instructions, comparing two operands to decide which branch to
take, but we only have one control value, not two.

The best way to solve this would be to teach the compiler than some
blocks need two control values. While that doesn't look too difficult to
implement, it is a fairly large scale, intrusive change to the compiler.
Maintaining these changes as upstream continues to change the compiler
would become a painful maintainance burden.

Instead, make the branches behave much more like other architectures,
where the condition comparision is done in an instruction before the
branch. We then generate a branch instruction that simply compares the
condition with zero.

Once we are merged upstream, we can come back and investigate generating
better code by adding a second control value.

Fixes golang#12

Change-Id: I926d7ea45973c88927d42e915eb68265e79eb345
This issue was closed.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants