On Feb 25, 2014 2:48 AM, "⚛" <0xe2.0x...@gmail.com> wrote:
> I would like to join the golang team at Google in Slovakia as a full time job related to improving the Go compiler and runtime. I do not know how to execute this and what steps to follow. I would like to ask you for an advice.
That's really great news!
PS: I don't think you need any advice besides what you've already done.
On Feb 26, 2014 7:21 AM, "Niklas Schnelle" <niklas....@gmail.com> wrote:
> You do realize Go is one of the lesser optimizing modern compilers simply because it wasn't a primary goal in development?
that's not correct. the goal should be as fast as possible without impacting the compilation speed too much.
And I remembered that Rob once said with the new Go compiler in Go, it's possible to add vectorization.
to put in another way, low-overhead optimizing compiler is the goal.
> Maybe have a look into llgo, the LLVM backend already does put a lot of effort into optimization, especially automatic vectorization i.e
> using SIMD. I don't get why you obsess about benchmarks though, obviously benchmarks are just a tool to do a somewhat educated
> guess on the optimization capabilities. Take a look at http://llvm.org/docs/Vectorizers.html
we (the go users) certainly want the gc toolchain to be more optimizing, without using LLVM (consider how much time/memory is required to simply compile LLVM, I'm still glad that they made the decision to not use LLVM in gc).
You do realize Go is one of the lesser optimizing modern compilers simply because it wasn't a primary goal in development?
Maybe have a look into llgo, the LLVM backend already does put a lot of effort into optimization, especially automatic vectorization i.eusing SIMD. I don't get why you obsess about benchmarks
--
---
You received this message because you are subscribed to the Google Groups "golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
In my opinion a better solution for the compiler to enable the rotate instruction in a consistent way would be to add a runtime.RotateLeft32(int32, int32) function. The compiler would recognize this function and generate the rotation instruction. This would enable programmers to rearrange their codes at will and be sure that the compiler emits the instruction. If it is just a hardcoded pattern and not a special function, like in the current Go compiler, we cannot be sure that the compiler emits the instruction.
On Wed, Feb 26, 2014 at 12:08 PM, ⚛ <0xe2.0x...@gmail.com> wrote:
In my opinion a better solution for the compiler to enable the rotate instruction in a consistent way would be to add a runtime.RotateLeft32(int32, int32) function. The compiler would recognize this function and generate the rotation instruction. This would enable programmers to rearrange their codes at will and be sure that the compiler emits the instruction. If it is just a hardcoded pattern and not a special function, like in the current Go compiler, we cannot be sure that the compiler emits the instruction.Speaking of this problem, I believe the more desirable way is to make the gc compiler ableto inline (simple) assembly functions (even if the user need some special annotation in theassembly, but I don't expect the compiler to need much special annotation). Which meansif you have a very simple inner loop code segment that the compiler isn't able to optimizecorrect, you can just code that segment in assembly, instead of the whole loop (which isthe case for today's assembly code in Go tree).
Secondly, no compiler that I know of is capable of autovectorizing and/or auto-multithreading the Mandelbrot benchmark.