)]}'
{
  "commit": "aee5fa8dd6aa948160a290c8237d7ae4875811fb",
  "tree": "e523b27cb2a591e685d0832edb75ec7f3771613e",
  "parents": [
    "cfa628b5f7612d202de234980b21bd6d59a11998"
  ],
  "author": {
    "name": "Qining Lu",
    "email": "qining@google.com",
    "time": "Thu Aug 20 14:59:03 2015 -0700"
  },
  "committer": {
    "name": "Qining Lu",
    "email": "qining@google.com",
    "time": "Thu Aug 20 14:59:03 2015 -0700"
  },
  "message": "Use separate random number generator for each randomization pass\n\nThis removes random number generator from GlobalContext class and decouples different randomization passes\n\n1. Add a new constructor for random number generator which merge three arguments to into one seed for the underlying implementation of random number generator.\n\nRandomNumberGenerator(uint64_t Seed, RandomizationPassesEnum RandomizationPassID, uint64_t Salt\u003d0)\n\nparam Seed: Should be the global random number seed passed through command line.\nparam RandomizationPassID: Should be the ID for different randomization passes.\nparam Salt: Should be an additional integer salt, default to be 0.\n\n2. Move the creation of random number generators to the call sites of randomization passes. Each randomization pass create its own random number generator with specific salt value.\n\nFunction reordering:\t\tSalt \u003d 0 (default)\nBasic Block reordering:\t\tSalt \u003d Function Sequence Number\nGlobal Variable reordering:\tSalt \u003d 0 (default)\nPooled Constants reordering:\tSalt \u003d Constants\u0027 Kind value (return of getKind())\n               *Jump Tables:\tSalt \u003d 0\nNop Insertion:\t\t\tSalt \u003d Function Sequence Number\nRegister Alloc Randomization:\tSalt \u003d (Function Sequence Number \u003c\u003c 1) ^ (Kind \u003d\u003d RAK_Phi ? 0u : 1u)\nConstants Blinding:\t\tSalt \u003d Function Sequence Number\n\n*Jump tables are treated as pooled constants, but without Kind value as salt.\n\nBUG\u003d\nR\u003dstichnot@chromium.org\n\nReview URL: https://codereview.chromium.org/1300993002.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "218ecd9017197485c2e0a2401daf0700b655e268",
      "old_mode": 33188,
      "old_path": "src/IceCfg.cpp",
      "new_id": "cc6d07c0e1bbba9c06406ac7e126e8ac6a2d7a66",
      "new_mode": 33188,
      "new_path": "src/IceCfg.cpp"
    },
    {
      "type": "modify",
      "old_id": "b5ded6a44bbe8eef96834300d30dc6ae1eac3228",
      "old_mode": 33188,
      "old_path": "src/IceCfg.h",
      "new_id": "e6c5a4a43c7708f9fb42f2b028312c2a8f1e8800",
      "new_mode": 33188,
      "new_path": "src/IceCfg.h"
    },
    {
      "type": "modify",
      "old_id": "76dc097d48e6cd70b7d0ccaf289ed3a763a1a636",
      "old_mode": 33188,
      "old_path": "src/IceCfgNode.cpp",
      "new_id": "6926722d576d6f9488fa8c13f875918ba2de5ea7",
      "new_mode": 33188,
      "new_path": "src/IceCfgNode.cpp"
    },
    {
      "type": "modify",
      "old_id": "e90969026a0dd78e5f09c995308a5ef442a40567",
      "old_mode": 33188,
      "old_path": "src/IceCfgNode.h",
      "new_id": "963638d0599428b2261aa5625f4ed05a969db0e9",
      "new_mode": 33188,
      "new_path": "src/IceCfgNode.h"
    },
    {
      "type": "modify",
      "old_id": "2565aeece78a55ad525d8b8e31dc7b9e71c77de1",
      "old_mode": 33188,
      "old_path": "src/IceDefs.h",
      "new_id": "7ea34be88f1f40415bdd02346193629adfd3b3a0",
      "new_mode": 33188,
      "new_path": "src/IceDefs.h"
    },
    {
      "type": "modify",
      "old_id": "f32a2b6671bb9b2857cfa77387f7f68c6edbd6e8",
      "old_mode": 33188,
      "old_path": "src/IceELFObjectWriter.cpp",
      "new_id": "25c2bf3aebb48acece2797e5268b1cd65ff50a0f",
      "new_mode": 33188,
      "new_path": "src/IceELFObjectWriter.cpp"
    },
    {
      "type": "modify",
      "old_id": "ffa6c15bd024a8dbaf8372c3dba0e7457058640e",
      "old_mode": 33188,
      "old_path": "src/IceGlobalContext.cpp",
      "new_id": "3d157652cd8e8f8e44e1adcb4e3e6ebf59b1c49d",
      "new_mode": 33188,
      "new_path": "src/IceGlobalContext.cpp"
    },
    {
      "type": "modify",
      "old_id": "7f27024490974a743f01a0096884d347468d882e",
      "old_mode": 33188,
      "old_path": "src/IceGlobalContext.h",
      "new_id": "e07e577e98616ccc8b462c5e11b3dda8b3bb281d",
      "new_mode": 33188,
      "new_path": "src/IceGlobalContext.h"
    },
    {
      "type": "modify",
      "old_id": "a6b9adf5b93bfb2b867ebc4ce3e84b33ec7a5e07",
      "old_mode": 33188,
      "old_path": "src/IceRNG.cpp",
      "new_id": "28efb8ffa14f432ce18d398f725afaa2a6199adb",
      "new_mode": 33188,
      "new_path": "src/IceRNG.cpp"
    },
    {
      "type": "modify",
      "old_id": "5ddd97f247fedfa551f01bf78cbb4b27e9635244",
      "old_mode": 33188,
      "old_path": "src/IceRNG.h",
      "new_id": "4eeefa6c25243f291a5c83538012981df8607973",
      "new_mode": 33188,
      "new_path": "src/IceRNG.h"
    },
    {
      "type": "modify",
      "old_id": "0d9afba44d55c72f68d4bab6ac184380781bf21b",
      "old_mode": 33188,
      "old_path": "src/IceRegAlloc.cpp",
      "new_id": "bc0643e7fd1f89f7760ee4a6ad04e587529cc8a6",
      "new_mode": 33188,
      "new_path": "src/IceRegAlloc.cpp"
    },
    {
      "type": "modify",
      "old_id": "3e93b768cfb24d1384090ecf1c9a023dc6f38218",
      "old_mode": 33188,
      "old_path": "src/IceTargetLowering.cpp",
      "new_id": "5ef6d098d62357f5a2db047dd9f09164a779e790",
      "new_mode": 33188,
      "new_path": "src/IceTargetLowering.cpp"
    },
    {
      "type": "modify",
      "old_id": "a5e60640533bbdc8e0ce8e0446f7a1ee7400e7d5",
      "old_mode": 33188,
      "old_path": "src/IceTargetLowering.h",
      "new_id": "a1c5aad49b146a63f14b3cfc6899fcefcb401e41",
      "new_mode": 33188,
      "new_path": "src/IceTargetLowering.h"
    },
    {
      "type": "modify",
      "old_id": "14fa072ee0cec5386201c29c44d376d7a7826229",
      "old_mode": 33188,
      "old_path": "src/IceTargetLoweringARM32.cpp",
      "new_id": "c3d05a21202fca9b0a3f64e5341a30595983186f",
      "new_mode": 33188,
      "new_path": "src/IceTargetLoweringARM32.cpp"
    },
    {
      "type": "modify",
      "old_id": "637c9a25c6efbe7dd461b63cc5993b325560c629",
      "old_mode": 33188,
      "old_path": "src/IceTargetLoweringARM32.h",
      "new_id": "059751047255072c91c8576960a2bc0fad002e77",
      "new_mode": 33188,
      "new_path": "src/IceTargetLoweringARM32.h"
    },
    {
      "type": "modify",
      "old_id": "a59f486c3aaec1cdbb510d4a083a9eda0690cb9a",
      "old_mode": 33188,
      "old_path": "src/IceTargetLoweringMIPS32.cpp",
      "new_id": "8f434b54035e2ef208d09591bd3f6d738ca720d7",
      "new_mode": 33188,
      "new_path": "src/IceTargetLoweringMIPS32.cpp"
    },
    {
      "type": "modify",
      "old_id": "76a5239284fd5eff7b5c8700796064c7903ffcdb",
      "old_mode": 33188,
      "old_path": "src/IceTargetLoweringMIPS32.h",
      "new_id": "4fe19951277e908997d7a5f1fcb0e793cbd4499d",
      "new_mode": 33188,
      "new_path": "src/IceTargetLoweringMIPS32.h"
    },
    {
      "type": "modify",
      "old_id": "466564d8408bba025e049ef93f2c557d935818c3",
      "old_mode": 33188,
      "old_path": "src/IceTargetLoweringX8632.cpp",
      "new_id": "e9f998987ddc9d4bd6506365d458a934b2f90793",
      "new_mode": 33188,
      "new_path": "src/IceTargetLoweringX8632.cpp"
    },
    {
      "type": "modify",
      "old_id": "1d47d3adba795e1b90a75fe66ee7d22136ce9883",
      "old_mode": 33188,
      "old_path": "src/IceTargetLoweringX8632Traits.h",
      "new_id": "3bfd404b76df098334726f24cea339126ded3c7c",
      "new_mode": 33188,
      "new_path": "src/IceTargetLoweringX8632Traits.h"
    },
    {
      "type": "modify",
      "old_id": "41d24cc8baf52dbc511347f626e32fc9ca5f8887",
      "old_mode": 33188,
      "old_path": "src/IceTargetLoweringX8664.cpp",
      "new_id": "76fffa04039c1de54e4884ab05aa55c9fdcf5c3f",
      "new_mode": 33188,
      "new_path": "src/IceTargetLoweringX8664.cpp"
    },
    {
      "type": "modify",
      "old_id": "7cb85e0816ff22e99797e133b4ca041dd700face",
      "old_mode": 33188,
      "old_path": "src/IceTargetLoweringX8664Traits.h",
      "new_id": "a84dbc486e35fa79d8a8276a0ba30635ec99f856",
      "new_mode": 33188,
      "new_path": "src/IceTargetLoweringX8664Traits.h"
    },
    {
      "type": "modify",
      "old_id": "31bc35bd45d6c09b21d4db5061d1f06747cd8a62",
      "old_mode": 33188,
      "old_path": "src/IceTargetLoweringX86Base.h",
      "new_id": "8c0f29854cddfdaa0879c3b21180cef40b8a513b",
      "new_mode": 33188,
      "new_path": "src/IceTargetLoweringX86Base.h"
    },
    {
      "type": "modify",
      "old_id": "5e46c98c814ffa03a963c7479d63d2a22e61a86c",
      "old_mode": 33188,
      "old_path": "src/IceTargetLoweringX86BaseImpl.h",
      "new_id": "a0b5b6cb6c5bd0c1c2ae84b392cd44f2cd8617b5",
      "new_mode": 33188,
      "new_path": "src/IceTargetLoweringX86BaseImpl.h"
    },
    {
      "type": "modify",
      "old_id": "160d9336214a50e0acab40f8c987651e2d90e457",
      "old_mode": 33188,
      "old_path": "tests_lit/llvm2ice_tests/nop-insertion.ll",
      "new_id": "785ef486ab887b20b3536dabef8b1f7e57f876e0",
      "new_mode": 33188,
      "new_path": "tests_lit/llvm2ice_tests/nop-insertion.ll"
    },
    {
      "type": "modify",
      "old_id": "5c886311af23738b8352d604365abc695bd1c30e",
      "old_mode": 33188,
      "old_path": "tests_lit/llvm2ice_tests/randomize-pool-immediate-basic.ll",
      "new_id": "a33409108fa17043002093f3502ba785e7ddad47",
      "new_mode": 33188,
      "new_path": "tests_lit/llvm2ice_tests/randomize-pool-immediate-basic.ll"
    },
    {
      "type": "modify",
      "old_id": "696fce5a2dbdcf2bdbe327666145a0d9aaee6b82",
      "old_mode": 33188,
      "old_path": "tests_lit/llvm2ice_tests/randomize-regalloc.ll",
      "new_id": "5bdd70d2a4d5d98702debd16a7f1f56a722b8329",
      "new_mode": 33188,
      "new_path": "tests_lit/llvm2ice_tests/randomize-regalloc.ll"
    },
    {
      "type": "modify",
      "old_id": "d390ff367f1ccdaa31a51b832b3470b494d1ba68",
      "old_mode": 33188,
      "old_path": "tests_lit/llvm2ice_tests/reorder-basic-blocks.ll",
      "new_id": "bd490214aa6288e7e14c4729696d4c4c0a5b1427",
      "new_mode": 33188,
      "new_path": "tests_lit/llvm2ice_tests/reorder-basic-blocks.ll"
    },
    {
      "type": "modify",
      "old_id": "02af79a6d79da4a26751fe745107f793ea04cff0",
      "old_mode": 33188,
      "old_path": "tests_lit/llvm2ice_tests/reorder-functions.ll",
      "new_id": "3cbce9cc29b863d90e8eb880045aff71408fbc88",
      "new_mode": 33188,
      "new_path": "tests_lit/llvm2ice_tests/reorder-functions.ll"
    },
    {
      "type": "modify",
      "old_id": "b2a77ccad29d37fc5b6f02162255083135877815",
      "old_mode": 33188,
      "old_path": "tests_lit/llvm2ice_tests/reorder-global-variables.ll",
      "new_id": "e39250253ca41f344fda1d9b811a7fe4682f1daf",
      "new_mode": 33188,
      "new_path": "tests_lit/llvm2ice_tests/reorder-global-variables.ll"
    },
    {
      "type": "modify",
      "old_id": "688caac9434460911faecc37d95e7ee70a551df2",
      "old_mode": 33188,
      "old_path": "tests_lit/llvm2ice_tests/reorder-pooled-constants.ll",
      "new_id": "ce53ea14f8dfff6d0707c081a81899ca25d94f5b",
      "new_mode": 33188,
      "new_path": "tests_lit/llvm2ice_tests/reorder-pooled-constants.ll"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f7c40b32107b9ed4c1a228fa07dc25b0356efc29",
      "new_mode": 33188,
      "new_path": "tests_lit/llvm2ice_tests/rng.ll"
    }
  ]
}
