- 21 Sep, 2015 2 commits
-
-
Keith Randall authored
Change-Id: I4deb03340e87f43179d5e22bf81843c17b5581fc Reviewed-on: https://go-review.googlesource.com/14756Reviewed-by:
David Chase <drchase@google.com>
-
Keith Randall authored
There's no need for special ops for panicindex and panicslice. Just use regular runtime calls. Change-Id: I71b9b73f4f1ebce1220fdc1e7b7f65cfcf4b7bae Reviewed-on: https://go-review.googlesource.com/14726Reviewed-by:
David Chase <drchase@google.com>
-
- 20 Sep, 2015 2 commits
-
-
Keith Randall authored
Change-Id: I5de36244de4dcc4a9827ee0fa04526e3e3578e7f Reviewed-on: https://go-review.googlesource.com/14755Reviewed-by:
David Chase <drchase@google.com>
-
Keith Randall authored
For variables which get SSA'd, SSA keeps track of all the def/kill. It is only for on-stack variables that we need them. This reduces stack frame sizes significantly because often the only use of a variable was a varkill, and without that last use the variable doesn't get allocated in the frame at all. Fixes #12602 Change-Id: I3f00a768aa5ddd8d7772f375b25f846086a3e689 Reviewed-on: https://go-review.googlesource.com/14758Reviewed-by:
Brad Fitzpatrick <bradfitz@golang.org>
-
- 19 Sep, 2015 2 commits
-
-
Keith Randall authored
We need to move any objects whose types are not SSA-able. Fixes the "not lowered: Load ARRAY PTR64 mem" errors. Change-Id: I7a0b609f917d7fb34bc9215fee4da15f9961cf6c Reviewed-on: https://go-review.googlesource.com/14753Reviewed-by:
David Chase <drchase@google.com> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Keith Randall authored
The frontend rewrites most literals, so we see only zero ones during SSA construction. We can implement those using the existing zeroing behavior. Change-Id: I390ad1be0a4b6729baf0c8936c7610aae2aef049 Reviewed-on: https://go-review.googlesource.com/14754Reviewed-by:
David Chase <drchase@google.com> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
- 17 Sep, 2015 4 commits
-
-
Keith Randall authored
ptrvar -> ptrVar, etc. Change-Id: Id38bed0e145711dfe3bdc9541ab4741da6a570a2 Reviewed-on: https://go-review.googlesource.com/14725Reviewed-by:
Todd Neal <todd@tneal.org>
-
Keith Randall authored
Taken over and completed from Josh's change https://go-review.googlesource.com/#/c/14524/ Change-Id: If5d4f732843cc3e99bd5edda54458f0a8be73e91 Reviewed-on: https://go-review.googlesource.com/14690Reviewed-by:
Josh Bleecher Snyder <josharian@gmail.com>
-
Keith Randall authored
Generate AUNDEF for every exit block, not just for certain control values. Change-Id: Ife500ac5159ee790bc1e70c0e9b0b1f854bc4c47 Reviewed-on: https://go-review.googlesource.com/14721Reviewed-by:
Josh Bleecher Snyder <josharian@gmail.com>
-
Keith Randall authored
OCALLINTER, as well as ODEFER/OPROC with OCALLMETH/OCALLINTER. Move all the call logic to its own routine, a lot of the code is shared. Change-Id: Ieac59596165e434cc6d1d7b5e46b78957e9c5ed3 Reviewed-on: https://go-review.googlesource.com/14464Reviewed-by:
Todd Neal <todd@tneal.org> Reviewed-by:
David Chase <drchase@google.com>
-
- 16 Sep, 2015 2 commits
-
-
Keith Randall authored
A simpler way to do iface/slice comparisons. Fixes some cases of failed lowerings. Change-Id: Ia252bc8648293a2d460f63c41f1591785543a1e9 Reviewed-on: https://go-review.googlesource.com/14493Reviewed-by:
Josh Bleecher Snyder <josharian@gmail.com>
-
Keith Randall authored
Change-Id: I1fbce8c421c48074a964b4d9481c92fbc3524f80 Reviewed-on: https://go-review.googlesource.com/14525Reviewed-by:
Todd Neal <todd@tneal.org>
-
- 15 Sep, 2015 2 commits
-
-
Keith Randall authored
Fixes build. Not great, but it will let others make progress. Change-Id: If9cf2bbb5016e40aa91cf1c8bb62982ae2aed5e4 Reviewed-on: https://go-review.googlesource.com/14621Reviewed-by:
Keith Randall <khr@golang.org>
-
Keith Randall authored
Load-and-sign-extend opcodes were being generated in the wrong block, leading to having more than one memory variable live at once. Fix the rules + add a test. Change-Id: Iadf80e55ea901549c15c628ae295c2d0f1f64525 Reviewed-on: https://go-review.googlesource.com/14591Reviewed-by:
Todd Neal <todd@tneal.org> Run-TryBot: Todd Neal <todd@tneal.org>
-
- 14 Sep, 2015 3 commits
-
-
Keith Randall authored
For now, we only use typedmemmove. This can be optimized in future CLs. Also add a feature to help with binary searching bad compilations. Together with GOSSAPKG, GOSSAHASH specifies the last few binary digits of the hash of function names that should be compiled. So GOSSAHASH=0110 means compile only those functions whose last 4 bits of hash are 0110. By adding digits to the front we can binary search for the function whose SSA-generated code is causing a test to fail. Change-Id: I5a8b6b70c6f034f59e5753965234cd42ea36d524 Reviewed-on: https://go-review.googlesource.com/14530Reviewed-by:
Keith Randall <khr@golang.org>
-
Keith Randall authored
Implement OSLICE, OSLICEARR, OSLICESTR, OSLICE3, OSLICE3ARR. reviewer: Ignore the code in OINDEX, that's from CL 14466. Change-Id: I00cc8aecd4c6f40ea5517cd660bb0ce759d91171 Reviewed-on: https://go-review.googlesource.com/14538Reviewed-by:
Todd Neal <todd@tneal.org>
-
Keith Randall authored
Change-Id: I984d3e0410ac38c4e42ae8e3670ea47e2140de76 Reviewed-on: https://go-review.googlesource.com/14466Reviewed-by:
Alexandru Moșoi <alexandru@mosoi.ro> Reviewed-by:
Todd Neal <todd@tneal.org>
-
- 12 Sep, 2015 4 commits
-
-
Keith Randall authored
This makes deadstore elimination work reasonably again. Change-Id: I3a8caced71f12dfb6c1d0c68b7a7d8d7a736ea23 Reviewed-on: https://go-review.googlesource.com/14536Reviewed-by:
Brad Fitzpatrick <bradfitz@golang.org>
-
Keith Randall authored
Change-Id: I5a683f532a5a0b2bc862d80c871e8dc6721016fc Reviewed-on: https://go-review.googlesource.com/14534Reviewed-by:
Brad Fitzpatrick <bradfitz@golang.org>
-
Keith Randall authored
Change-Id: I1e5993e0e56481ce838c0e3979b1a3052e72dba5 Reviewed-on: https://go-review.googlesource.com/14535Reviewed-by:
Brad Fitzpatrick <bradfitz@golang.org>
-
Keith Randall authored
Change-Id: Iec61ca1bdc064c29ceca6d47f600d5643d0a64dd Reviewed-on: https://go-review.googlesource.com/14533Reviewed-by:
Brad Fitzpatrick <bradfitz@golang.org>
-
- 11 Sep, 2015 4 commits
-
-
Josh Bleecher Snyder authored
Move the AST to SSA conversion to the caller. This enables it to be used in contexts in which the RHS is already an *ssa.Value. Change-Id: Ibb87210fb9fda095a9b7c7f4ad1264a7cbd269bf Reviewed-on: https://go-review.googlesource.com/14521 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> Reviewed-by:
Keith Randall <khr@golang.org>
-
Josh Bleecher Snyder authored
Remove unnecessary local var split. Change-Id: I907ef682b5fd9b3a67771edd1fe90c558f8937ea Reviewed-on: https://go-review.googlesource.com/14523 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> Reviewed-by:
Keith Randall <khr@golang.org>
-
Josh Bleecher Snyder authored
Change-Id: I1f93ea65bbdc895cd4eff7545e1688a64d85aae5 Reviewed-on: https://go-review.googlesource.com/14520 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> Reviewed-by:
Brad Fitzpatrick <bradfitz@golang.org>
-
Keith Randall authored
Move to implicit (mostly) instead of explicit exit blocks. RET and RETJMP have no outgoing edges - they implicitly exit. CALL only has one outgoing edge, as its exception edge is implicit as well. Exit blocks are only used for unconditionally panicking code, like the failed branches of nil and bounds checks. There may now be more than one exit block. No merges happen at exit blocks. The only downside is it is harder to find all the places code can exit the method. See the reverse dominator code for an example. Change-Id: I42e2fd809a4bf81301ab993e29ad9f203ce48eb0 Reviewed-on: https://go-review.googlesource.com/14462Reviewed-by:
Josh Bleecher Snyder <josharian@gmail.com>
-
- 10 Sep, 2015 6 commits
-
-
Keith Randall authored
It was using 64-bit float comparison ops for complex64. It should use 32-bit float comparison. Fixes build. Change-Id: I6452b227257fecc09e04cd092ccf328d1fc9917f Reviewed-on: https://go-review.googlesource.com/14497 Run-TryBot: Keith Randall <khr@golang.org> Reviewed-by:
Brad Fitzpatrick <bradfitz@golang.org>
-
Keith Randall authored
Change-Id: Iefabce4eb0dbc313dd1863513b45307cc76c545a Reviewed-on: https://go-review.googlesource.com/14468Reviewed-by:
Brad Fitzpatrick <bradfitz@golang.org>
-
Keith Randall authored
They were using the result type to look up the op, not the arg type. Change-Id: I0641cba363fa6e7a66ad0860aa340106c10c2cea Reviewed-on: https://go-review.googlesource.com/14469Reviewed-by:
Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by:
Josh Bleecher Snyder <josharian@gmail.com>
-
Todd Neal authored
Add line that was inadvertently removed. Change-Id: I99ebc1041e984e408ae5825836c28b9891d6043b Reviewed-on: https://go-review.googlesource.com/14470 Run-TryBot: Todd Neal <todd@tneal.org> Reviewed-by:
Keith Randall <khr@golang.org>
-
Todd Neal authored
Change-Id: Ieb9cddf8876bf8cd5ee1705d9210d22c3959e8cc Reviewed-on: https://go-review.googlesource.com/14329Reviewed-by:
Keith Randall <khr@golang.org> Run-TryBot: Todd Neal <todd@tneal.org>
-
Todd Neal authored
This matches existing behavior, see issue #2196 Change-Id: Ifa9359b7c821115389f337a57de355c5ec23be8f Reviewed-on: https://go-review.googlesource.com/14261Reviewed-by:
Keith Randall <khr@golang.org>
-
- 09 Sep, 2015 5 commits
-
-
David Chase authored
Added tree numbering data structure. Changed dominator query in CSE. Removed skip-for-too-big patch in CSE. Passes all.bash. Change-Id: I98d7c61b6015c81f5edab553615db17bc7a58d68 Reviewed-on: https://go-review.googlesource.com/14326Reviewed-by:
Keith Randall <khr@golang.org>
-
Keith Randall authored
Change-Id: I352c7b9aab053959bc74c15861339e1dbe545ddc Reviewed-on: https://go-review.googlesource.com/14404Reviewed-by:
David Chase <drchase@google.com>
-
Keith Randall authored
Evaluating args can overwrite arg area, so we can't write argsize and func until args are evaluated. Fixes test/recover.go, test/recover1.go, and test/fixedbugs/issue4066.go Change-Id: I862e4934ccdb8661431bcc3e1e93817ea834ea3f Reviewed-on: https://go-review.googlesource.com/14405Reviewed-by:
David Chase <drchase@google.com>
-
Keith Randall authored
Make sure that return blocks take a store as their control. Without this, code was getting inserted between the return and exit blocks. Use AEND to mark the end of code. The live variable analysis gets confused when routines end like: JMP earlier RET because the RET is unreachable. The RET was incorrectly added to the last basic block, rendering the JMP invisible to the CFG builder. Change-Id: I91b32c8b37075347243ff039b4e4385856fba7cd Reviewed-on: https://go-review.googlesource.com/14398Reviewed-by:
Josh Bleecher Snyder <josharian@gmail.com>
-
Keith Randall authored
Using the main package causes a binary to be generated. That binary clutters up git listings. Use a non-main package instead, so the results of a successful compilation are thrown away. Change-Id: I3ac91fd69ad297a5c0fe035c22fdef290b7dfbc4 Reviewed-on: https://go-review.googlesource.com/14399Reviewed-by:
Josh Bleecher Snyder <josharian@gmail.com> Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
- 08 Sep, 2015 4 commits
-
-
Keith Randall authored
Semi-regular merge of master into dev.ssa. Change-Id: I48aa17700096a14f2a20ad07491ebfcd7529f6d5
-
Shenghou Ma authored
Just a mechanical copy, no code changes. This is to reduce code difference when adding the mips64 port. Change-Id: Id06e975f414a7b09f4827167b30813b228a3bfaf Reviewed-on: https://go-review.googlesource.com/14324Reviewed-by:
Ian Lance Taylor <iant@golang.org>
-
Shenghou Ma authored
Just a mechanical copy with filename renames, no code changes. This is to reduce code difference when adding the mips64 port. Change-Id: Id06e975f414a7b09f4827167b30813b228a3bfae Reviewed-on: https://go-review.googlesource.com/14323Reviewed-by:
Ian Lance Taylor <iant@golang.org>
-
Michael Hudson-Doyle authored
Change-Id: I88fa0cc245a2141af04acced8716e08b1133abd1 Reviewed-on: https://go-review.googlesource.com/14350Reviewed-by:
Ian Lance Taylor <iant@golang.org>
-