MakeContainerOneLine

help

Click on a value or block to toggle highlighting of that value/block and its uses. (Values and blocks are highlighted by ID, and IDs of dead items may be reused, so not all highlights necessarily correspond to the clicked item.)

Faded out values and blocks are dead code that has not been eliminated.

Values printed in italics have a dependency cycle.

start

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v4 = Addr <**container> {~r0} v2
    • v5 = ConstNil <*container>
    • v6 = Addr <*uint8> {type."".container} v3
    • v7 = OffPtr <**byte> [0] v2
    • v8 = Store <mem> [8] v7 v6 v1
    • v9 = StaticCall <mem> {runtime.newobject} [16] v8
    • v10 = OffPtr <**container> [8] v2
    • v11 = Load <*container> v10 v9
    • v12 = NilCheck <void> v11 v9
    • v13 = Zero <mem> [size=64,align=1] v11 v9
    • v14 = VarDef <mem> {~r0} v13
    • v15 = Store <mem> [8] v4 v11 v14
  • Ret v15

after early phielim [601 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v4 = Addr <**container> {~r0} v2
    • v5 = ConstNil <*container>
    • v6 = Addr <*uint8> {type."".container} v3
    • v7 = OffPtr <**byte> [0] v2
    • v8 = Store <mem> [8] v7 v6 v1
    • v9 = StaticCall <mem> {runtime.newobject} [16] v8
    • v10 = OffPtr <**container> [8] v2
    • v11 = Load <*container> v10 v9
    • v12 = NilCheck <void> v11 v9
    • v13 = Zero <mem> [size=64,align=1] v11 v9
    • v14 = VarDef <mem> {~r0} v13
    • v15 = Store <mem> [8] v4 v11 v14
  • Ret v15

after early copyelim [357 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v4 = Addr <**container> {~r0} v2
    • v5 = ConstNil <*container>
    • v6 = Addr <*uint8> {type."".container} v3
    • v7 = OffPtr <**byte> [0] v2
    • v8 = Store <mem> [8] v7 v6 v1
    • v9 = StaticCall <mem> {runtime.newobject} [16] v8
    • v10 = OffPtr <**container> [8] v2
    • v11 = Load <*container> v10 v9
    • v12 = NilCheck <void> v11 v9
    • v13 = Zero <mem> [size=64,align=1] v11 v9
    • v14 = VarDef <mem> {~r0} v13
    • v15 = Store <mem> [8] v4 v11 v14
  • Ret v15

after early deadcode [2629 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v4 = Addr <**container> {~r0} v2
    • v6 = Addr <*uint8> {type."".container} v3
    • v7 = OffPtr <**byte> [0] v2
    • v8 = Store <mem> [8] v7 v6 v1
    • v9 = StaticCall <mem> {runtime.newobject} [16] v8
    • v10 = OffPtr <**container> [8] v2
    • v11 = Load <*container> v10 v9
    • v12 = NilCheck <void> v11 v9
    • v13 = Zero <mem> [size=64,align=1] v11 v9
    • v14 = VarDef <mem> {~r0} v13
    • v15 = Store <mem> [8] v4 v11 v14
  • Ret v15

after short circuit [1660 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v4 = Addr <**container> {~r0} v2
    • v6 = Addr <*uint8> {type."".container} v3
    • v7 = OffPtr <**byte> [0] v2
    • v8 = Store <mem> [8] v7 v6 v1
    • v9 = StaticCall <mem> {runtime.newobject} [16] v8
    • v10 = OffPtr <**container> [8] v2
    • v11 = Load <*container> v10 v9
    • v12 = NilCheck <void> v11 v9
    • v13 = Zero <mem> [size=64,align=1] v11 v9
    • v14 = VarDef <mem> {~r0} v13
    • v15 = Store <mem> [8] v4 v11 v14
    • v5 = ConstBool <bool> [true]
    • v16 = ConstBool <bool> [false]
  • Ret v15

after decompose user [377 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v4 = Addr <**container> {~r0} v2
    • v6 = Addr <*uint8> {type."".container} v3
    • v7 = OffPtr <**byte> [0] v2
    • v8 = Store <mem> [8] v7 v6 v1
    • v9 = StaticCall <mem> {runtime.newobject} [16] v8
    • v10 = OffPtr <**container> [8] v2
    • v11 = Load <*container> v10 v9
    • v12 = NilCheck <void> v11 v9
    • v13 = Zero <mem> [size=64,align=1] v11 v9
    • v14 = VarDef <mem> {~r0} v13
    • v15 = Store <mem> [8] v4 v11 v14
    • v5 = ConstBool <bool> [true]
    • v16 = ConstBool <bool> [false]
  • Ret v15

after opt [10853 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v4 = Addr <**container> {~r0} v2
    • v6 = Addr <*uint8> {type."".container} v3
    • v7 = OffPtr <**byte> [0] v2
    • v8 = Store <mem> [8] v7 v6 v1
    • v9 = StaticCall <mem> {runtime.newobject} [16] v8
    • v10 = OffPtr <**container> [8] v2
    • v11 = Load <*container> v10 v9
    • v14 = VarDef <mem> {~r0} v9
    • v15 = Store <mem> [8] v4 v11 v14
    • v5 = ConstBool <bool> [true]
    • v16 = ConstBool <bool> [false]
  • Ret v15

after zero arg cse [3408 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v4 = Addr <**container> {~r0} v2
    • v6 = Addr <*uint8> {type."".container} v3
    • v7 = OffPtr <**byte> [0] v2
    • v8 = Store <mem> [8] v7 v6 v1
    • v9 = StaticCall <mem> {runtime.newobject} [16] v8
    • v10 = OffPtr <**container> [8] v2
    • v11 = Load <*container> v10 v9
    • v14 = VarDef <mem> {~r0} v9
    • v15 = Store <mem> [8] v4 v11 v14
    • v5 = ConstBool <bool> [true]
    • v16 = ConstBool <bool> [false]
  • Ret v15

after opt deadcode [3161 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v4 = Addr <**container> {~r0} v2
    • v6 = Addr <*uint8> {type."".container} v3
    • v7 = OffPtr <**byte> [0] v2
    • v8 = Store <mem> [8] v7 v6 v1
    • v9 = StaticCall <mem> {runtime.newobject} [16] v8
    • v10 = OffPtr <**container> [8] v2
    • v11 = Load <*container> v10 v9
    • v14 = VarDef <mem> {~r0} v9
    • v15 = Store <mem> [8] v4 v11 v14
  • Ret v15

after generic cse [10263 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v4 = Addr <**container> {~r0} v2
    • v6 = Addr <*uint8> {type."".container} v3
    • v7 = OffPtr <**byte> [0] v2
    • v8 = Store <mem> [8] v7 v6 v1
    • v9 = StaticCall <mem> {runtime.newobject} [16] v8
    • v10 = OffPtr <**container> [8] v2
    • v11 = Load <*container> v10 v9
    • v14 = VarDef <mem> {~r0} v9
    • v15 = Store <mem> [8] v4 v11 v14
  • Ret v15

after phiopt [173 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v4 = Addr <**container> {~r0} v2
    • v6 = Addr <*uint8> {type."".container} v3
    • v7 = OffPtr <**byte> [0] v2
    • v8 = Store <mem> [8] v7 v6 v1
    • v9 = StaticCall <mem> {runtime.newobject} [16] v8
    • v10 = OffPtr <**container> [8] v2
    • v11 = Load <*container> v10 v9
    • v14 = VarDef <mem> {~r0} v9
    • v15 = Store <mem> [8] v4 v11 v14
  • Ret v15

after nilcheckelim [769 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v4 = Addr <**container> {~r0} v2
    • v6 = Addr <*uint8> {type."".container} v3
    • v7 = OffPtr <**byte> [0] v2
    • v8 = Store <mem> [8] v7 v6 v1
    • v9 = StaticCall <mem> {runtime.newobject} [16] v8
    • v10 = OffPtr <**container> [8] v2
    • v11 = Load <*container> v10 v9
    • v14 = VarDef <mem> {~r0} v9
    • v15 = Store <mem> [8] v4 v11 v14
  • Ret v15

after prove [1862 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v4 = Addr <**container> {~r0} v2
    • v6 = Addr <*uint8> {type."".container} v3
    • v7 = OffPtr <**byte> [0] v2
    • v8 = Store <mem> [8] v7 v6 v1
    • v9 = StaticCall <mem> {runtime.newobject} [16] v8
    • v10 = OffPtr <**container> [8] v2
    • v11 = Load <*container> v10 v9
    • v14 = VarDef <mem> {~r0} v9
    • v15 = Store <mem> [8] v4 v11 v14
  • Ret v15

after loopbce [538 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v4 = Addr <**container> {~r0} v2
    • v6 = Addr <*uint8> {type."".container} v3
    • v7 = OffPtr <**byte> [0] v2
    • v8 = Store <mem> [8] v7 v6 v1
    • v9 = StaticCall <mem> {runtime.newobject} [16] v8
    • v10 = OffPtr <**container> [8] v2
    • v11 = Load <*container> v10 v9
    • v14 = VarDef <mem> {~r0} v9
    • v15 = Store <mem> [8] v4 v11 v14
  • Ret v15

after decompose builtin [309 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v4 = Addr <**container> {~r0} v2
    • v6 = Addr <*uint8> {type."".container} v3
    • v7 = OffPtr <**byte> [0] v2
    • v8 = Store <mem> [8] v7 v6 v1
    • v9 = StaticCall <mem> {runtime.newobject} [16] v8
    • v10 = OffPtr <**container> [8] v2
    • v11 = Load <*container> v10 v9
    • v14 = VarDef <mem> {~r0} v9
    • v15 = Store <mem> [8] v4 v11 v14
  • Ret v15

after dec [4265 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v4 = Addr <**container> {~r0} v2
    • v6 = Addr <*uint8> {type."".container} v3
    • v7 = OffPtr <**byte> [0] v2
    • v8 = Store <mem> [8] v7 v6 v1
    • v9 = StaticCall <mem> {runtime.newobject} [16] v8
    • v10 = OffPtr <**container> [8] v2
    • v11 = Load <*container> v10 v9
    • v14 = VarDef <mem> {~r0} v9
    • v15 = Store <mem> [8] v4 v11 v14
  • Ret v15

after late opt [5138 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v4 = Addr <**container> {~r0} v2
    • v6 = Addr <*uint8> {type."".container} v3
    • v7 = OffPtr <**byte> [0] v2
    • v8 = Store <mem> [8] v7 v6 v1
    • v9 = StaticCall <mem> {runtime.newobject} [16] v8
    • v10 = OffPtr <**container> [8] v2
    • v11 = Load <*container> v10 v9
    • v14 = VarDef <mem> {~r0} v9
    • v15 = Store <mem> [8] v4 v11 v14
  • Ret v15

after generic deadcode [8472 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v4 = Addr <**container> {~r0} v2
    • v6 = Addr <*uint8> {type."".container} v3
    • v7 = OffPtr <**byte> [0] v2
    • v8 = Store <mem> [8] v7 v6 v1
    • v9 = StaticCall <mem> {runtime.newobject} [16] v8
    • v10 = OffPtr <**container> [8] v2
    • v11 = Load <*container> v10 v9
    • v14 = VarDef <mem> {~r0} v9
    • v15 = Store <mem> [8] v4 v11 v14
  • Ret v15

after check bce [243 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v4 = Addr <**container> {~r0} v2
    • v6 = Addr <*uint8> {type."".container} v3
    • v7 = OffPtr <**byte> [0] v2
    • v8 = Store <mem> [8] v7 v6 v1
    • v9 = StaticCall <mem> {runtime.newobject} [16] v8
    • v10 = OffPtr <**container> [8] v2
    • v11 = Load <*container> v10 v9
    • v14 = VarDef <mem> {~r0} v9
    • v15 = Store <mem> [8] v4 v11 v14
  • Ret v15

after writebarrier [578 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v4 = Addr <**container> {~r0} v2
    • v6 = Addr <*uint8> {type."".container} v3
    • v7 = OffPtr <**byte> [0] v2
    • v8 = Store <mem> [8] v7 v6 v1
    • v9 = StaticCall <mem> {runtime.newobject} [16] v8
    • v10 = OffPtr <**container> [8] v2
    • v11 = Load <*container> v10 v9
    • v14 = VarDef <mem> {~r0} v9
    • v15 = Store <mem> [8] v4 v11 v14
  • Ret v15

after fuse [445 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v4 = Addr <**container> {~r0} v2
    • v6 = Addr <*uint8> {type."".container} v3
    • v7 = OffPtr <**byte> [0] v2
    • v8 = Store <mem> [8] v7 v6 v1
    • v9 = StaticCall <mem> {runtime.newobject} [16] v8
    • v10 = OffPtr <**container> [8] v2
    • v11 = Load <*container> v10 v9
    • v14 = VarDef <mem> {~r0} v9
    • v15 = Store <mem> [8] v4 v11 v14
  • Ret v15

after dse [5023 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v4 = Addr <**container> {~r0} v2
    • v6 = Addr <*uint8> {type."".container} v3
    • v7 = OffPtr <**byte> [0] v2
    • v8 = Store <mem> [8] v7 v6 v1
    • v9 = StaticCall <mem> {runtime.newobject} [16] v8
    • v10 = OffPtr <**container> [8] v2
    • v11 = Load <*container> v10 v9
    • v14 = VarDef <mem> {~r0} v9
    • v15 = Store <mem> [8] v4 v11 v14
  • Ret v15

after tighten [6782 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v4 = Addr <**container> {~r0} v2
    • v6 = Addr <*uint8> {type."".container} v3
    • v7 = OffPtr <**byte> [0] v2
    • v8 = Store <mem> [8] v7 v6 v1
    • v9 = StaticCall <mem> {runtime.newobject} [16] v8
    • v10 = OffPtr <**container> [8] v2
    • v11 = Load <*container> v10 v9
    • v14 = VarDef <mem> {~r0} v9
    • v15 = Store <mem> [8] v4 v11 v14
  • Ret v15

after lower [10183 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v4 = LEAQ <**container> {~r0} v2
    • v6 = LEAQ <*uint8> {type."".container} v3
    • v8 = MOVQstore <mem> v2 v6 v1
    • v9 = CALLstatic <mem> {runtime.newobject} [16] v8
    • v10 = ADDQconst <**container> [8] v2
    • v11 = MOVQload <*container> [8] v2 v9
    • v14 = VarDef <mem> {~r0} v9
    • v15 = MOVQstore <mem> {~r0} v2 v11 v14
  • Ret v15

after lowered cse [8928 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v4 = LEAQ <**container> {~r0} v2
    • v6 = LEAQ <*uint8> {type."".container} v3
    • v8 = MOVQstore <mem> v2 v6 v1
    • v9 = CALLstatic <mem> {runtime.newobject} [16] v8
    • v10 = ADDQconst <**container> [8] v2
    • v11 = MOVQload <*container> [8] v2 v9
    • v14 = VarDef <mem> {~r0} v9
    • v15 = MOVQstore <mem> {~r0} v2 v11 v14
  • Ret v15

after lowered deadcode [2379 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v6 = LEAQ <*uint8> {type."".container} v3
    • v8 = MOVQstore <mem> v2 v6 v1
    • v9 = CALLstatic <mem> {runtime.newobject} [16] v8
    • v11 = MOVQload <*container> [8] v2 v9
    • v14 = VarDef <mem> {~r0} v9
    • v15 = MOVQstore <mem> {~r0} v2 v11 v14
  • Ret v15

after checkLower [398 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v6 = LEAQ <*uint8> {type."".container} v3
    • v8 = MOVQstore <mem> v2 v6 v1
    • v9 = CALLstatic <mem> {runtime.newobject} [16] v8
    • v11 = MOVQload <*container> [8] v2 v9
    • v14 = VarDef <mem> {~r0} v9
    • v15 = MOVQstore <mem> {~r0} v2 v11 v14
  • Ret v15

after late phielim [738 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v6 = LEAQ <*uint8> {type."".container} v3
    • v8 = MOVQstore <mem> v2 v6 v1
    • v9 = CALLstatic <mem> {runtime.newobject} [16] v8
    • v11 = MOVQload <*container> [8] v2 v9
    • v14 = VarDef <mem> {~r0} v9
    • v15 = MOVQstore <mem> {~r0} v2 v11 v14
  • Ret v15

after late copyelim [287 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v6 = LEAQ <*uint8> {type."".container} v3
    • v8 = MOVQstore <mem> v2 v6 v1
    • v9 = CALLstatic <mem> {runtime.newobject} [16] v8
    • v11 = MOVQload <*container> [8] v2 v9
    • v14 = VarDef <mem> {~r0} v9
    • v15 = MOVQstore <mem> {~r0} v2 v11 v14
  • Ret v15

after phi tighten [206 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v6 = LEAQ <*uint8> {type."".container} v3
    • v8 = MOVQstore <mem> v2 v6 v1
    • v9 = CALLstatic <mem> {runtime.newobject} [16] v8
    • v11 = MOVQload <*container> [8] v2 v9
    • v14 = VarDef <mem> {~r0} v9
    • v15 = MOVQstore <mem> {~r0} v2 v11 v14
  • Ret v15

after late deadcode [1824 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v6 = LEAQ <*uint8> {type."".container} v3
    • v8 = MOVQstore <mem> v2 v6 v1
    • v9 = CALLstatic <mem> {runtime.newobject} [16] v8
    • v11 = MOVQload <*container> [8] v2 v9
    • v14 = VarDef <mem> {~r0} v9
    • v15 = MOVQstore <mem> {~r0} v2 v11 v14
  • Ret v15

after critical [543 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v6 = LEAQ <*uint8> {type."".container} v3
    • v8 = MOVQstore <mem> v2 v6 v1
    • v9 = CALLstatic <mem> {runtime.newobject} [16] v8
    • v11 = MOVQload <*container> [8] v2 v9
    • v14 = VarDef <mem> {~r0} v9
    • v15 = MOVQstore <mem> {~r0} v2 v11 v14
  • Ret v15

after likelyadjust [593 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v6 = LEAQ <*uint8> {type."".container} v3
    • v8 = MOVQstore <mem> v2 v6 v1
    • v9 = CALLstatic <mem> {runtime.newobject} [16] v8
    • v11 = MOVQload <*container> [8] v2 v9
    • v14 = VarDef <mem> {~r0} v9
    • v15 = MOVQstore <mem> {~r0} v2 v11 v14
  • Ret v15

after layout [1344 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v6 = LEAQ <*uint8> {type."".container} v3
    • v8 = MOVQstore <mem> v2 v6 v1
    • v9 = CALLstatic <mem> {runtime.newobject} [16] v8
    • v11 = MOVQload <*container> [8] v2 v9
    • v14 = VarDef <mem> {~r0} v9
    • v15 = MOVQstore <mem> {~r0} v2 v11 v14
  • Ret v15

after schedule [9852 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v6 = LEAQ <*uint8> {type."".container} v3
    • v8 = MOVQstore <mem> v2 v6 v1
    • v9 = CALLstatic <mem> {runtime.newobject} [16] v8
    • v11 = MOVQload <*container> [8] v2 v9
    • v14 = VarDef <mem> {~r0} v9
    • v15 = MOVQstore <mem> {~r0} v2 v11 v14
  • Ret v15

after late nilcheck [1982 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v6 = LEAQ <*uint8> {type."".container} v3
    • v8 = MOVQstore <mem> v2 v6 v1
    • v9 = CALLstatic <mem> {runtime.newobject} [16] v8
    • v11 = MOVQload <*container> [8] v2 v9
    • v14 = VarDef <mem> {~r0} v9
    • v15 = MOVQstore <mem> {~r0} v2 v11 v14
  • Ret v15

after flagalloc [3032 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr>
    • v3 = SB <uintptr>
    • v6 = LEAQ <*uint8> {type."".container} v3
    • v8 = MOVQstore <mem> v2 v6 v1
    • v9 = CALLstatic <mem> {runtime.newobject} [16] v8
    • v11 = MOVQload <*container> [8] v2 v9
    • v14 = VarDef <mem> {~r0} v9
    • v15 = MOVQstore <mem> {~r0} v2 v11 v14
  • Ret v15

after regalloc [30731 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr> : SP
    • v3 = SB <uintptr> : SB
    • v10 = LEAQ <*uint8> {type."".container} v3 : AX
    • v8 = MOVQstore <mem> v2 v10 v1
    • v9 = CALLstatic <mem> {runtime.newobject} [16] v8
    • v11 = MOVQload <*container> [8] v2 v9 : AX
    • v14 = VarDef <mem> {~r0} v9
    • v15 = MOVQstore <mem> {~r0} v2 v11 v14
  • Ret v15

after stackframe [2521 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr> : SP
    • v3 = SB <uintptr> : SB
    • v10 = LEAQ <*uint8> {type."".container} v3 : AX
    • v8 = MOVQstore <mem> v2 v10 v1
    • v9 = CALLstatic <mem> {runtime.newobject} [16] v8
    • v11 = MOVQload <*container> [8] v2 v9 : AX
    • v14 = VarDef <mem> {~r0} v9
    • v15 = MOVQstore <mem> {~r0} v2 v11 v14
  • Ret v15

after trim [657 ns]

  • b1:
    • v1 = InitMem <mem>
    • v2 = SP <uintptr> : SP
    • v3 = SB <uintptr> : SB
    • v10 = LEAQ <*uint8> {type."".container} v3 : AX
    • v8 = MOVQstore <mem> v2 v10 v1
    • v9 = CALLstatic <mem> {runtime.newobject} [16] v8
    • v11 = MOVQload <*container> [8] v2 v9 : AX
    • v14 = VarDef <mem> {~r0} v9
    • v15 = MOVQstore <mem> {~r0} v2 v11 v14
  • Ret v15

genssa

00013 (alloc_overhead.go:12) TEXT "".MakeContainerOneLine(SB)
00014 (alloc_overhead.go:12) FUNCDATA $0, "".gcargs·2(SB)
00015 (alloc_overhead.go:12) FUNCDATA $1, "".gclocals·3(SB)
00016 (alloc_overhead.go:12) TYPE ~r0(FP), type.*"".container(SB)
v10
00017 (alloc_overhead.go:13) LEAQ type."".container(SB), AX
v8
00018 (alloc_overhead.go:13) MOVQ AX, (SP)
v9
00019 (alloc_overhead.go:13) CALL runtime.newobject(SB)
v11
00020 (alloc_overhead.go:13) MOVQ 8(SP), AX
v14
00021 (alloc_overhead.go:13) VARDEF "".~r0(FP)
v15
00022 (alloc_overhead.go:13) MOVQ AX, "".~r0(FP)
b1
00023 (alloc_overhead.go:13) RET
00024 (<unknown line number>) END