go/src/cmd/compile/internal/ssa
Keith Randall 770d8d8207 cmd/compile: free value earlier in nilcheck
When we remove a nil check, add it back to the free Value pool immediately.

Fixes #18732

Change-Id: I8d644faabbfb52157d3f2d071150ff0342ac28dc
Reviewed-on: https://go-review.googlesource.com/58810
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
2017-08-25 06:01:26 +00:00
..
gen cmd/compile: don't use MOVOstore instruction on plan9/amd64 2017-08-25 05:56:26 +00:00
block.go cmd/compile/internal/ssa: replace {Defer,Go}Call with StaticCall 2017-03-13 19:44:36 +00:00
cache.go [dev.debug] cmd/compile: better DWARF with optimizations on 2017-07-27 20:19:44 +00:00
check.go cmd/compile: check that phis are always first after scheduling 2017-06-07 00:13:20 +00:00
checkbce.go cmd/compile: move Frontend field from ssa.Config to ssa.Func 2017-03-17 23:18:57 +00:00
compile.go cmd/compile: eliminate stores to unread auto variables 2017-08-24 16:53:56 +00:00
config.go cmd/compile: don't use MOVOstore instruction on plan9/amd64 2017-08-25 05:56:26 +00:00
copyelim.go cmd/compile: reorg copyelim to avoid O(n^2) problem 2016-04-28 17:40:08 +00:00
copyelim_test.go cmd/compile: change ssa.Type into *types.Type 2017-05-09 23:01:51 +00:00
critical.go cmd/compile: move Frontend field from ssa.Config to ssa.Func 2017-03-17 23:18:57 +00:00
cse.go cmd/compile/internal/ssa: fix spelling mistake 2017-05-19 05:03:37 +00:00
cse_test.go cmd/compile: change ssa.Type into *types.Type 2017-05-09 23:01:51 +00:00
deadcode.go cmd/compile: ignore all unreachable values during simple phi insertion 2017-03-24 18:00:15 +00:00
deadcode_test.go cmd/compile: change ssa.Type into *types.Type 2017-05-09 23:01:51 +00:00
deadstore.go cmd/compile: eliminate stores to unread auto variables 2017-08-24 16:53:56 +00:00
deadstore_test.go cmd/compile: change ssa.Type into *types.Type 2017-05-09 23:01:51 +00:00
debug.go cmd/compile: rename SSA Register.Name to Register.String 2017-08-17 21:53:08 +00:00
decompose.go cmd/compile: rename SSA Register.Name to Register.String 2017-08-17 21:53:08 +00:00
dom.go cmd/compile: enhance postorder computation and repair loop finder 2017-04-19 02:57:23 +00:00
dom_test.go cmd/compile: change ssa.Type into *types.Type 2017-05-09 23:01:51 +00:00
export_test.go [dev.debug] cmd/compile: track variable decomposition in LocalSlot 2017-07-26 18:39:39 +00:00
flagalloc.go cmd/compile: cache CFG-dependent computations 2016-09-19 16:00:13 +00:00
func.go cmd/compile: free value earlier in nilcheck 2017-08-25 06:01:26 +00:00
func_test.go cmd/compile: change ssa.Type into *types.Type 2017-05-09 23:01:51 +00:00
fuse.go cmd/compile: fuse from end to beginning 2017-05-17 16:28:09 +00:00
fuse_test.go cmd/compile: change ssa.Type into *types.Type 2017-05-09 23:01:51 +00:00
html.go cmd/compile: rename SSA Register.Name to Register.String 2017-08-17 21:53:08 +00:00
id.go cmd/compile: in a Tarjan algorithm, DFS should really be DFS 2016-04-22 19:21:16 +00:00
layout.go cmd/compile: lay out exit blocks last 2017-05-16 13:46:10 +00:00
lca.go cmd/compile: remove redundant function idom 2016-10-11 16:43:12 +00:00
lca_test.go cmd/compile: clean up SSA test API 2017-03-19 05:37:39 +00:00
likelyadjust.go cmd/compile: don't break up contiguous blocks in looprotate 2017-05-18 17:58:39 +00:00
location.go cmd/compile: rename SSA Register.Name to Register.String 2017-08-17 21:53:08 +00:00
loop_test.go cmd/compile: change ssa.Type into *types.Type 2017-05-09 23:01:51 +00:00
loopbce.go cmd/compile: move Frontend field from ssa.Config to ssa.Func 2017-03-17 23:18:57 +00:00
loopreschedchecks.go cmd/compile: fix phi-function updates for preemptible loops 2017-07-14 15:54:13 +00:00
looprotate.go all: fix easy-to-miss typos 2017-08-23 03:07:12 +00:00
lower.go cmd/compile: make ssa compilation unconditional 2016-09-14 17:38:04 +00:00
magic.go cmd/compile: move constant divide strength reduction to SSA rules 2017-02-17 06:16:44 +00:00
magic_test.go cmd/compile: move constant divide strength reduction to SSA rules 2017-02-17 06:16:44 +00:00
nilcheck.go cmd/compile: free value earlier in nilcheck 2017-08-25 06:01:26 +00:00
nilcheck_test.go cmd/compile: change ssa.Type into *types.Type 2017-05-09 23:01:51 +00:00
op.go Revert "cmd/compile: add Type.MustSize and Type.MustAlignment" 2017-04-28 01:24:13 +00:00
opGen.go cmd/compile: mark MOVQconvert as resultInArg0 on x86 architectures 2017-08-24 16:40:38 +00:00
opt.go cmd/compile: cleanup after IntSize->PtrSize conversion 2017-04-23 02:07:26 +00:00
passbm_test.go cmd/compile: change ssa.Type into *types.Type 2017-05-09 23:01:51 +00:00
phielim.go cmd/compile: move Frontend field from ssa.Config to ssa.Func 2017-03-17 23:18:57 +00:00
phiopt.go Revert "cmd/compile: add Type.MustSize and Type.MustAlignment" 2017-04-28 01:24:13 +00:00
print.go cmd/compile: rename SSA Register.Name to Register.String 2017-08-17 21:53:08 +00:00
prove.go cmd/compile: move Frontend field from ssa.Config to ssa.Func 2017-03-17 23:18:57 +00:00
redblack32.go cmd/compile: use sparse algorithm for phis in large program 2016-05-16 21:08:05 +00:00
redblack32_test.go cmd/compile: use sparse algorithm for phis in large program 2016-05-16 21:08:05 +00:00
regalloc.go cmd/compile: free value earlier in nilcheck 2017-08-25 06:01:26 +00:00
regalloc_test.go cmd/compile: test for moving spills 2017-05-24 21:36:06 +00:00
rewrite.go cmd/compile: add support for arm64 bit-test instructions 2017-08-15 13:39:11 +00:00
rewrite386.go cmd/compile: add support for arm64 bit-test instructions 2017-08-15 13:39:11 +00:00
rewrite_test.go all: remove the the duplicate words 2017-03-06 04:39:12 +00:00
rewriteAMD64.go cmd/compile: don't use MOVOstore instruction on plan9/amd64 2017-08-25 05:56:26 +00:00
rewriteARM.go cmd/compile: add support for arm64 bit-test instructions 2017-08-15 13:39:11 +00:00
rewriteARM64.go cmd/compile: omit unnecessary boolean zero extension on arm64 2017-08-21 14:38:04 +00:00
rewritedec.go cmd/compile: eliminate some bounds checks from generated rewrite rules 2017-05-16 14:08:08 +00:00
rewritedec64.go cmd/compile: eliminate some bounds checks from generated rewrite rules 2017-05-16 14:08:08 +00:00
rewritegeneric.go cmd/compile: remove more nil ptr checks after newobject 2017-08-25 03:26:58 +00:00
rewriteMIPS.go cmd/compile: add support for arm64 bit-test instructions 2017-08-15 13:39:11 +00:00
rewriteMIPS64.go cmd/compile: add support for arm64 bit-test instructions 2017-08-15 13:39:11 +00:00
rewritePPC64.go cmd/compile: add support for arm64 bit-test instructions 2017-08-15 13:39:11 +00:00
rewriteS390X.go cmd/compile: add support for arm64 bit-test instructions 2017-08-15 13:39:11 +00:00
schedule.go cmd/compile: better check for single live memory 2017-05-15 19:17:35 +00:00
schedule_test.go cmd/compile: change ssa.Type into *types.Type 2017-05-09 23:01:51 +00:00
shift_test.go cmd/compile: change ssa.Type into *types.Type 2017-05-09 23:01:51 +00:00
shortcircuit.go cmd/compile: lazily create true and false Values in shortcircuit 2017-04-24 00:58:27 +00:00
shortcircuit_test.go cmd/compile: change ssa.Type into *types.Type 2017-05-09 23:01:51 +00:00
sizeof_test.go [dev.debug] cmd/compile: track variable decomposition in LocalSlot 2017-07-26 18:39:39 +00:00
sparsemap.go [dev.inline] cmd/internal/src: introduce compact source position representation 2017-01-09 22:43:22 +00:00
sparseset.go cmd/compile: reduce element size of arrays in sparse{map,set} 2016-05-18 14:05:14 +00:00
sparsetree.go cmd/compile: fix phi-function updates for preemptible loops 2017-07-14 15:54:13 +00:00
sparsetreemap.go cmd/compile: remove redundant function idom 2016-10-11 16:43:12 +00:00
stackalloc.go cmd/compile: rename SSA Register.Name to Register.String 2017-08-17 21:53:08 +00:00
stackframe.go cmd/compile: move Frontend field from ssa.Config to ssa.Func 2017-03-17 23:18:57 +00:00
tighten.go cmd/compile: clean up ssa.Value memory arg usage 2017-03-09 21:40:47 +00:00
TODO cmd/compile/internal/ssa: use Compare instead of Equal 2016-04-17 04:50:45 +00:00
trim.go cmd/compile: better check for single live memory 2017-05-15 19:17:35 +00:00
value.go cmd/compile: rename SSA Register.Name to Register.String 2017-08-17 21:53:08 +00:00
writebarrier.go cmd/compile: search for remaining WB ops from end to beginning 2017-05-18 20:14:12 +00:00
writebarrier_test.go cmd/compile: change ssa.Type into *types.Type 2017-05-09 23:01:51 +00:00
zcse.go cmd/compile: change ssa.Type into *types.Type 2017-05-09 23:01:51 +00:00