[all-commits] [llvm/llvm-project] aa98e7: Revert "[InstCombine] Combine instructions of type...

alexfh via All-commits all-commits at lists.llvm.org
Wed Jun 1 05:20:18 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: aa98e7e1eb960712533d39bbc98a05a6e70a9683
      https://github.com/llvm/llvm-project/commit/aa98e7e1eb960712533d39bbc98a05a6e70a9683
  Author: Alexander Kornienko <alexfh at google.com>
  Date:   2022-06-01 (Wed, 01 Jun 2022)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
    M llvm/test/Transforms/InstCombine/and-or.ll
    M llvm/test/Transforms/InstCombine/or.ll

  Log Message:
  -----------
  Revert "[InstCombine] Combine instructions of type or/and where AND masks can be combined."

This reverts commit ec4adf1f6c333d3d36663d8f763c0896407f1b61. The commit causes
clang to hang on a certain input:
```
$ cat q.cc
int f(int a, int b) {
  int c = ((unsigned char)(a >> 23) & 925);
  if (a)
    c = (a >> 23 & b) | ((unsigned char)(a >> 23) & 925) | (b >> 23 & 157);
  return c;
}

$ time ./clang-15-10515 --target=x86_64--linux-gnu -O1  -c q.cc
^C

real    0m45.072s
user    0m0.025s
sys     0m0.099s
```




More information about the All-commits mailing list