1. 03 Nov, 2018 3 commits
    • Austin Clements's avatar
      cmd/internal/obj: don't dedup symbols in WriteObjFile · c0281afd
      Austin Clements authored
      Currently, WriteObjFile deduplicates symbols by name. This is a
      strange and unexpected place to do this. But, worse, there's no
      checking that it's reasonable to deduplicate two symbols, so this
      makes it incredibly easy to mask errors involving duplicate symbols.
      Dealing with duplicate symbols is better left to the linker. We're
      also about to introduce multiple symbols with the same name but
      different ABIs/versions, which would make this deduplication more
      complicated. We just removed the only part of the compiler that
      actually depended on this behavior.
      
      This CL removes symbol deduplication from WriteObjFile, since it is no
      longer needed.
      
      For #27539.
      
      Change-Id: I650c550e46e83f95c67cb6c6646f9b2f7f10df30
      Reviewed-on: https://go-review.googlesource.com/c/146558
      Run-TryBot: Austin Clements <austin@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarCherry Zhang <cherryyz@google.com>
      c0281afd
    • Austin Clements's avatar
      cmd/compile: avoid duplicate GC bitmap symbols · 15265ec4
      Austin Clements authored
      Currently, liveness produces a distinct obj.LSym for each GC bitmap
      for each function. These are then named by content hash and only
      ultimately deduplicated by WriteObjFile.
      
      For various reasons (see next commit), we want to remove this
      deduplication behavior from WriteObjFile. Furthermore, it's
      inefficient to produce these duplicate symbols in the first place.
      
      GC bitmaps are the only source of duplicate symbols in the compiler.
      This commit eliminates these duplicate symbols by declaring them in
      the Ctxt symbol hash just like every other obj.LSym. As a result, all
      GC bitmaps with the same content now refer to the same obj.LSym.
      
      The next commit will remove deduplication from WriteObjFile.
      
      For #27539.
      
      Change-Id: I4f15e3d99530122cdf473b7a838c69ef5f79db59
      Reviewed-on: https://go-review.googlesource.com/c/146557
      Run-TryBot: Austin Clements <austin@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarKeith Randall <khr@golang.org>
      Reviewed-by: default avatarCherry Zhang <cherryyz@google.com>
      15265ec4
    • Cherry Zhang's avatar
      cmd/internal/obj/arm64: fix encoding of 32-bit negated logical instructions · 441cb988
      Cherry Zhang authored
      32-bit negated logical instructions (BICW, ORNW, EONW) with
      constants were mis-encoded, because they were missing in the
      cases where we handle 32-bit logical instructions. This CL
      adds the missing cases.
      
      Fixes #28548
      
      Change-Id: I3d6acde7d3b72bb7d3d5d00a9df698a72c806ad5
      Reviewed-on: https://go-review.googlesource.com/c/147077
      Run-TryBot: Cherry Zhang <cherryyz@google.com>
      Run-TryBot: Ben Shi <powerman1st@163.com>
      Reviewed-by: default avatarBen Shi <powerman1st@163.com>
      441cb988
  2. 02 Nov, 2018 37 commits