Commit 9f45ba86 authored by Hans Wennborg's avatar Hans Wennborg
Browse files

ReleaseNotes: sinking of instructions without uses

llvm-svn: 370344
parent 9adebd4b
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -115,6 +115,26 @@ Noteworthy optimizations
           jmp     qword ptr [8*rax + .LJTI0_0]


* LLVM can now sink similar instructions to a common successor block also when
  the instructions have no uses, such as calls to void functions. This allows
  code such as

  .. code-block:: c

   void g(int);
   enum e { A, B, C, D };
   void f(e x, int y, int z) {
       switch(x) {
           case A: g(6); break;
           case B: g(3); break;
           case C: g(9); break;
           case D: g(2); break;
       }
   }

  to be optimized to a single call to ``g``, with the argument loaded from a
  lookup table.


Changes to the LLVM IR
----------------------