1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 12:02:58 +02:00
llvm-mirror/lib/Transforms
David Majnemer 7c9d3f854d [GVNHoist] Change the key for VNtoInsns to a pair
While debugging GVNHoist, I found it confusing that the entries in a
VNtoInsns were not always value numbers.  They _usually_ were except for
StoreInst in which case they were a hash of two different value numbers.

This leads to two observations:
- It is more difficult to debug things when the semantic contents of
  VNtoInsns changes over time.
- Using a single value number is not much cheaper, the value of
  VNtoInsns is a SmallVector.
- It is not immediately clear what the algorithm would do if there were
  hash collisions in the StoreInst case.

Using a DenseMap of std::pair sidesteps all of this.

N.B.  The changes in the test were due their sensitivity to the
iteration order of VNtoInsns which has changed.

llvm-svn: 275761
2016-07-18 06:11:37 +00:00
..
Hello Add auto-exporting of symbols from tools so that plugins work on Windows 2016-05-26 11:16:43 +00:00
InstCombine [InstCombine] allow X + signbit --> X ^ signbit for vector splats 2016-07-16 18:29:26 +00:00
Instrumentation Address review comments. 2016-07-17 14:46:58 +00:00
IPO Revert r275678, "Revert "Revert r275027 - Let FuncAttrs infer the 'returned' argument attribute"" 2016-07-18 03:23:25 +00:00
ObjCARC Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
Scalar [GVNHoist] Change the key for VNtoInsns to a pair 2016-07-18 06:11:37 +00:00
Utils Make processInstruction from LCSSA.cpp externally available. 2016-07-15 21:08:41 +00:00
Vectorize [LV] Swap A and B in interleaved access analysis (NFC) 2016-07-15 15:22:43 +00:00
CMakeLists.txt
LLVMBuild.txt