[LLVMdev] Using git bisect with LLVM

Sean Silva chisophugis at gmail.com
Fri Jul 4 12:49:40 PDT 2014


Check out chapuni's unified git tree for the entire SVN repo:

https://github.com/chapuni/llvm-project

-- Sean Silva


On Fri, Jul 4, 2014 at 12:05 PM, Jonas Wagner <jonas.wagner at epfl.ch> wrote:

> Hello,
>
> git bisect helped me today in tracking down a regression in LLVM/Clang.
> Because LLVM/Clang code is split across multiple git repositories, there
> were a few obstacles to overcome prior to using git bisect. I thought I
> would share them here, in the hope that they're useful for others.
>
> The main difficulty was to check out the version of clang and compiler-rt
> that would compile with a given LLVM revision. I used the following code in
> the bisect script:
>
>     checkout() {
>         cd $LLVM_SRC
>         local committer_date="$(git log --pretty=format:%cd -n1 'HEAD')"
>         cd $LLVM_SRC/tools/clang
>         git checkout "$(git rev-list -n 1 --before="$committer_date"
> origin/google/testing)"
>         cd $LLVM_SRC/projects/compiler-rt
>         git checkout "$(git rev-list -n 1 --before="$committer_date"
> origin/google/testing)"
>     }
>
>     build() {
>         cd $LLVM_BUILD
>         ninja
>     }
>
>     # Go for it!
>     checkout  || exit 125
>     build  || exit 125
>     run_test
>
> The code will, for a given LLVM revision, checkout the latest revision
> from the google/testing branch for both clang and compiler-rt. It will then
> compile everything. If either fails, the script exits with code 125, which
> tells git bisect to skip the current commit and try another one.
>
> Hope this helps!
> Jonas
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140704/319364d7/attachment.html>


More information about the llvm-dev mailing list