New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 910096 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Nov 29
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 1
Type: Bug

Blocking:
issue 904337



Sign in to add a comment

tip-of-tree clang asserts building boringssl in chromeos builds

Project Member Reported by h...@chromium.org, Nov 29

Issue description

Status: Started (was: Assigned)
With recent Clang:

$ cat out/release/args.gn
is_component_build = true
is_debug = true
symbol_level = 1
target_os = "chromeos"

$ ninja -C out/release android_clang_x86/obj/third_party/boringssl/boringssl/bcm.o

clang: /work/llvm.combined/llvm/include/llvm/ADT/DenseMap.h:404: void llvm::DenseMapBase<DerivedT, KeyT, ValueT, KeyInfoT, BucketT>::moveFromOldBuckets(BucketT*, BucketT*) [with DerivedT = llvm::De
nseMap<unsigned int, llvm::detail::DenseSetEmpty, llvm::DenseMapInfo<unsigned int>, llvm::detail::DenseSetPair<unsigned int> >; KeyT = unsigned int; ValueT = llvm::detail::DenseSetEmpty; KeyInfoT =
 llvm::DenseMapInfo<unsigned int>; BucketT = llvm::detail::DenseSetPair<unsigned int>]: Assertion `!FoundVal && "Key already in new map?"' failed.
bcm-049fed.c
2.6 MB View Download
bcm-049fed.sh
7.2 KB View Download
Bisecting...

a.sh:

#!/bin/bash
set -exo pipefail
ninja -C build.release clang || exit 125
rm -f /work/chromium/src/out/release/android_clang_x86/obj/third_party/boringssl/boringssl/bcm.o
ninja -C /work/chromium/src/out/release android_clang_x86/obj/third_party/boringssl/boringssl/bcm.o

$ git bisect run /tmp/a.sh
Cc: mtrofin@google.com
Bisection points to this change:

8bac1005e81053cdb8be3bfbc404c28210b45636 is the first bad commit
commit 8bac1005e81053cdb8be3bfbc404c28210b45636
Author: Mircea Trofin <mtrofin@google.com>
Date:   Mon Nov 26 21:36:18 2018 +0000

    Support for inserting profile-directed cache prefetches

    Summary:
    Support for profile-driven cache prefetching (X86)

    This change is part of a larger system, consisting of a cache prefetches recommender, create_llvm_prof (https://github.com/google/autofdo), and LLVM.

    A proof of concept recommender is DynamoRIO's cache miss analyzer. It processes memory access traces obtained from a running binary and identifies patterns in cache misses. Based on them, it pr
oduces a csv file with recommendations. The expectation is that, by leveraging such recommendations, we can reduce the amount of clock cycles spent waiting for data from memory. A microbenchmark ba
sed on the DynamoRIO analyzer is available as a proof of concept: https://goo.gl/6TM2Xp.

    The recommender makes prefetch recommendations in terms of:

    * the binary offset of an instruction with a memory operand;
    * a delta;
    * and a type (nta, t0, t1, t2)
[snip]
Status: Fixed (was: Started)
Reverted in r347864.

Sign in to add a comment