)]}'
{
  "commit": "f9bd455c85920d4576bc4aa40dac6bdf35eba53b",
  "tree": "a48a017dcf6c673122cb98026ed383135fcc0f75",
  "parents": [
    "fc23300164d6e36599c1ffe4bd50e878826fcdec"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Tue Feb 09 16:13:28 2021 -0500"
  },
  "committer": {
    "name": "CQ bot account: commit-bot@chromium.org",
    "email": "commit-bot@chromium.org",
    "time": "Tue Feb 09 23:25:27 2021 +0000"
  },
  "message": "Skip runtime NEON checks if __ARM_NEON is defined.\n\nWhen a feature is enabled statically in the build config, the compiler\ndefines __ARM_NEON and also considers itself free to emit NEON code.\nIn this case, there is no need to check for NEON support at runtime\nsince the binary will not work without NEON anyway. Moving the check to\ncompile time lets us drop unused code.\n\nChrome has required NEON on Android for nearly five years now. However,\nhistorically there was a bad CPU which broke on some NEON code, but not\nothers. See https://crbug.com/341598 and https://crbug.com/606629. We\nworked around that CPU by parsing /proc/cpuinfo and intentionally\ndropping the optimization. This is not a stable situation, however, as\nwe\u0027re hoping the compiler is not good enough at emitting NEON to trigger\nthis bug.\n\nSince then, the number of affected devices has dropped, and Chrome has\nraised the minimum Android requirement to L. The Net.HasBrokenNEON\nmetric from Chrome is now well in the noise.\n\nThis CL stops short of removing the workaround altogether because some\nconsumers of Cronet are unsure whether they needed this workaround.\nThose consumers also build without __ARM_NEON, so gating on that works\nout. We\u0027ll decide what to do with it pending metrics from them.\n\nUpdate-Note: Builds with __ARM_NEON (-mfpu\u003dneon) will now drop about\n30KiB of dead code, but no longer work (if they even did before) on a\nparticular buggy CPU. Builds without __ARM_NEON are not affected.\n\nChange-Id: Id8f7bccfb75afe0a1594572ea20c51d275b0a256\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/45484\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c9d771ffee48537498a060a087b02f08966201a8",
      "old_mode": 33188,
      "old_path": "crypto/cpu-arm-linux.c",
      "new_id": "962a4a5095c1aaeb35055f11509363fe507312d3",
      "new_mode": 33188,
      "new_path": "crypto/cpu-arm-linux.c"
    },
    {
      "type": "modify",
      "old_id": "ae55967915e1d47671a15fcdd1fa118c10b86a05",
      "old_mode": 33188,
      "old_path": "include/openssl/cpu.h",
      "new_id": "22ab7c243dcc8dbb03e21d46ad953c71b47af7c5",
      "new_mode": 33188,
      "new_path": "include/openssl/cpu.h"
    }
  ]
}
